Thursday, December 5, 2013

A month later

It's already December.

I had to disclose in my LinkedIn profile that I am willing to network with recruiters, but I'm not interested in any job opportunities. Everyone at Linaro has been treating me well, and I plan to be with them for many years to come. 

One of the issues I'm dealing with is to ask for help when I need it. It's not healthy to struggle for days on one issue when I could have easily reached out to anyone on my team. Part of it is a pride issue where I didn't want to be seen as a weak person. Nothing to do with gender. Yes, I know that even the best kernel developers ask each other for help. My team reminds me to ask questions multiple times. For me, it's something I'm not used to. Doesn't help that I've been placing high expectations on myself.

I'm a recovering perfectionist. Growing up in an Asian culture where I'd be "nothing" if I couldn't excel in what I do. I was used to being compared all the time, and I still find myself comparing myself to others. 

"Why couldn't I understand kernel concepts easily?"
"This hardware stuff is overwhelming."
"I'm not sure if I was meant to be a software engineer."

Let me tell you, I'm still trying to overcome self-doubt. It's an energy sucker, and I don't want anyone to experience this. Some days I feel like I can do anything, and of course, I have my days where I'm not 100% productive. 

In most cases, it's all going to take time, and I have to be okay with that :)

Monday, November 4, 2013

Exciting news

For those who don't follow me on Google+ or LinkedIn, I am excited to start my career as a Linux Software Engineer at Linaro! :)

I'll get to continue working in the Linux kernel and learn about the ARM architecture.

Monday, October 21, 2013

Random Thoughts as a (Recently) New Kernel Developer

It's ironic that I'm a sensitive care bear in the Linux kernel community where brutal honesty is common. Doesn't that scare me?

Mainly no.

The Linux kernel maintainers (and seasoned developers) who I talked to so far have been helpful, and I work hard to gain their trust. A chain of trust must be established. If more beginning kernel developers knew this rule of thumb, they can learn a lot and get their patches accepted upstream easier.

If I get the attention from multiple maintainers on the same patch (or patchset) I've written, that is a big deal. I could have been overlooked. But I'm given a chance to show improvement. I will redo a patch if I'm encouraged and asked to do so, which is great.

I would agree that kernel development isn't for everyone. It takes a lot of time and focus to understand how the code blocks work. It takes a person who is passionate and willing to learn along the way. It's not so much about being an expert in C; it's about becoming a complete package.

Can I write a convincing commit message to persuade the subsystem maintainer to accept my patch?

Can I take in feedback and understand the reasons behind it?

Can I see the bigger picture? Do I understand the upstream process? Do I understand how to build and boot into my own kernel?

Can I be communicate effectively with other people and be someone to work with in the near future?

Oh, I've had my moments when I thought, "Awwww man!" when one of my patches gets rejected, yet it's what I do afterwards that makes a difference. I may mope around for a few minutes before I pick myself up and keep going.

Friday, October 18, 2013

Xen Interns Featured on the Xen Project's website

Special thanks to Lars Kurth for allowing me and my fellow intern, Elena, to share our experiences as Xen interns in his latest blog on the Xen Project website!

There is still plenty of time for everyone (women, genderfluid, or anyone who identifies herself as a woman) to apply for the next set of Outreach Program for Women internships!

Tuesday, October 8, 2013

SeaGL conference this weekend

If you plan to be in the Seattle area this weekend, check out the Seattle GNU/Linux conference:

It's on Friday, October 11th and Saturday, October 12th. Say hello to your fellow attendees including myself, and hope to see you there!


Now I must get back to doing kernel work :)

Friday, October 4, 2013

Why I Chose to Hack on the Linux Kernel

Someone asked me this (the title of my post) during my phone interview today.

I'd be inclined to say that I wanted to step out of my comfort zone. See how code interacts with hardware. Those reasons are true. Get rid of my fear of hardware. I don't know why I have so much trouble understanding how each piece of hardware works. Maybe because there is so much involved than what I see. To an average person, a stick of memory makes programs load faster. To me, I think about memory mapping, memory addresses, and so forth.

The more I thought about why I wanted to hack into the Linux kernel, the more I believed I was meant to be a software engineer. I could have easily taken the easy way out to become a teacher. Yet I didn't want to teach without gaining some real world experience. I could have easily applied for a data entry position, but that wouldn't have been as fulfilling either. If I forced myself to take many Windows-based classes, my level of happiness wouldn't last as long.

Honestly, I haven't admitted this until now (or have I?), but the OPW internship turned my life around and saved me. When I first started this blog, I was on the track of becoming a digital forensics analyst. Forensics was an interest of mine, and when I was shot down from technical interviews due to my "lack" of experience, I figured that I'd try something new. I did, and I enjoyed my digital forensics classes. However, I felt some emptiness and wasn't sure how to fill the void.

The "Intro to Linux" class came into the picture, and I didn't think more than, "Well, it's a CS class and it'd be nice to take one again." Never in my mind did I see myself in these roles two years later:

  1. [Former] Project manager of a FOSS project (Xenapi Admin Project)
  2. Manpage co-author of the xe-pif-* commands for Xen Cloud Platform/XenServer
  3. Linux kernel developer intern (23 patches gone upstream and counting...)
  4. Event volunteer through the Linux Foundation
  5. Speaker at LinuxCon North America 2013
  6. Helper for the next OPW kernel round
Jokingly, somebody must be crazy to think that I haven't tried to be a well-rounded person in the open source community. My gut told me that I had a place in this community. There are people who are blunt, but I didn't mistake their honesty for rudeness. I knew they wanted to give me feedback, so I could grow and be better. For the first time in a long time, I felt supported and adored by many Linux users, supporters, and developers, because they believed that I can get things done! That I am capable to learning new skills, taking on new challenges, and bridging the gap between tech savvy and non-tech savvy people. I'm resourceful; if I don't understand one thing, I try to search for my answers online. If not, I will find ways to articulate my questions and ask someone.

I don't ever want to be a person who says, "At my previous jobs, I'm so used to doing x, y, and z." No, I want to adapt. Tell me what your expectations are, what goals that you want to see accomplished in the first six months, and I'll give you my commitment to deliver the results as best as I can. Sometimes life throws curveballs and things do not go according to plan. However, I do not give up easily. I will find a way to make something work, even it takes a bit more time.

The Linux kernel doesn't scare me anymore. My personal journey into the kernel was a way for me to test my capabilities. It tested me on a physical and emotional level. And guess what? I'm still standing, and I get *excited* when I understand one thing at a time and see the relationships between subsystems. I am not discouraged when I get told that people spend *years* understanding one subsystem. 

I've been coding in the kernel for the past 3-4 months, and I have gone a long way since I started. Years later, I've finally come around to tell myself how code does amazing things, especially when I write some and see it come to life.

Thursday, September 26, 2013

Post OPW internship goals

My OPW internship may have ended earlier this week, but it's only the beginning.

Yes, I've searched my job search; however, in the meantime, I will be doing the following:
  1. Serve as a secondary mentor (tech cheerleader) for the next OPW Linux Kernel round. Are you a female interested in doing some kernel work? Check out the details here: . The application begins on October 1, 2013 to November 1, 2013. Don't tell yourself that you have nothing to show without trying ;) What do you have to lose?
  2. Keep working on those Linux and Xen block drivers. I'll be happy when I get to submit an RFC patch to the xen-devel mailing list. Konrad and I will continue to have weekly meetings.
  3. If I need to stay away from those block drivers, then I'll submit some cleanup patches, just to keep me going.
  4. Resume my studies for the RHCSA/RHCE certificates. 
  5. Check in occasionally with the XenAPI Admin Project team.
  6. Give myself time to re-energize and be balanced as possible :)