Tuesday, October 23, 2007

My 23 - Don't Give Up

Two years ago, I randomly dropped my resume at Google's campus recruiting event. Without knowing too much about what each position means or does, I applied to all that are available for new grads. I applied only because Google is the hottest company in the industry. I never really wanted to leave home. I didn't think I was ready anyways.

Two months later, I got an email from Google HR to schedule an interview. This was for the Software Engineer position. Nervousness plus lack of preparation resulted in a so-so performance in the interviews. A month later, I received another email from Google HR. Instead of getting rejected, the recruiter told me that I was referred to the QA organization and asked if I would still be interested. Having already rejected RIM's offer and still don't have a job offer from the big companies in Vancouver, I signed up for the position in QA at Google. After going through 2 phone interviews, 5 on-site interviews, hiring committee, and EMG in 4 months, I got an offer from Google for Software QA Engineer.

From my co-op experience at RIM in the radio group. I thought "Software QA Engineer" is probably similar to what the radio group does - code maintenance, bug fixes, small feature development. This felt like the perfect starting position at a company like Google where people must have extremely high expectations.

When I decided to leave home for Google, I was ready to work hard to "make a difference"! I want everybody to be proud of me. I want to grow into a well respected developer at Google. 4 years, I tell everybody. Give me 4 years to explore my potentials and find out where I can get to in 4 years if I work very very hard and do everything I can.

First month in the role of Software QA Engineer. I realized the difference between reality and what I pictured myself doing a year ago. Although I work on a great project - Google Maps for Mobile - my position isn't nearly as glamorous. I am required to manage a group of manual testers, coordinate testing for releases, and deal with people management and crap. None of this is very technical yet time consuming. I am constantly teaching other people instead of learning. I am still young and inexperienced, I am eager and keen to learn anything and everything the Google engineers have to teach me.

I see people doing development work - in both development teams and in QA. Seems like even fixing bugs is out of my place to do. It frustrated me so much that I don't get to work on all the things I like and am good at. People compliment me in the area I am not that proud of myself. I wanted people to see my potential in the area I care about. My waterloo friends see this and this is why their compliments mean so much more.

I tried having manager's support to free some of my time to work on development. Manager's response was simply, "do what makes you happy". I started working 12 hours a day just so that I can spend some time learning and improving my development skills. Onion always get mad at me for working such long hours; but the extra 4~5 hours is what gives me the motivation to continue going to work the next day. I get involved in 2 to 3 other projects on top of my daily routine responsibilities. However, I cannot really commit to these extra projects so none of these are big production-level development work.

After working "multiple" duties for a year, my new manager finally found me a replacement for my current coordination responsibilities. Since I have been on the project/position for more than a year, I have met the prerequisite to go through the formal HR job transfer process to get the official Software Engineer title and work in the development teams. This decision opened up a can of uncertainties and drama in my life.

I followed the instructions to start the process. A recruiter was assigned to me soon after that. My first and most obvious choice is stay with the GMM team as a developer role. This way, I don't need to relearn the domain knowledge. I can just focus on growing my development skills. However, the mobile team in Mountain View wasn't hiring any more engineers at the time I applied. In order to continue with the transfer process, I found another team that was willing to take me - Internal Systems.

The Internal Systems team's manager approved my transfer request and recruiter soon scheduled Mochi 4 interviews. I didn't do well on one of the interviews, but felt pretty confident about the other 3. However, the interviewer gave me a surprising BAD feedback on the interview I didn't do well on. The interviewers for the other 3 interviews didn't include my code snippets in their feedback either. On top of these, my recruiter forgot to include my internal references when my case was presented to the Hiring Committee for review. With all these unlucky factors combined, Hiring Committee came back saying that they need more information on my case before they make the final decision.

The recruiter quickly scheduled yet another interview with short notice. Since I knew that this extra one will probably be the one Hiring Committee focus on, I gave myself so much pressure to do well and of course, I did NOT do well. I knew, right after the interview, I probably won't pass the Hiring Committee this time. They are known to be very harsh. I probably won't even give myself a pass based on my performance in the interview; so, I could only wish that they're more lenient for internal transfers. The confidence I slowly built up in the past year all of a sudden just collapsed. I was depressed and very disappointed in myself.

Knowing me and my abilities, both the GMM team and the Internal Systems team's representative go to the hiring committee to advocate for me. I was very touched by how much they believe in me - even more than I believe in myself. Perhaps, this is not the end of the world, I tell myself.

Despite all the positive statements from people I work with everyday, the hiring committee still decided to reject my transfer request. They wanted to see more Software Engineer experience before they're willing to grant me the title. Isn't this a chicken-and-egg problem? How can they expect me to have the experience before they let me work in that role officially? *sigh*...

Now, I have negotiated a deal with my manager to start working as a Software Engineer (regardless of my title) in the development team to get the experience the hiring committee wants to see. When I am ready, I will try the transfer again. There is no guarantee that I will pass next time; however, I believe this is only going to help me know myself better and make me stronger. I won't give up until one day, I become a Google approved Software Engineer.

"Be strong. Don't give up."