Sunday, October 14, 2007
The Google Interview
Image from Wicked Local.
A couple years ago, there were some HR trolls or maybe some some resume bots that figured out that I went to MIT and that I was a software engineer from my blog (yes, this one). A recruiter from Google emailed me asking me whether I'd be interested in a position at Google. Um yes, isn't that every software developer's dream? That initial contact didn't amount to anything as there was no local office, but they called again recently when an office opened in Cambridge, MA. My initial phone interviews went great where I kibitzed with the HR recruiter. But they sniffed me out as a faker during the technical phone interview. It's not that I don't know how to program, but having no formal education (let's just say MIT's first programming class 6.001 made me swear never to be a SW engineer), I sometimes leave some of the nitty gritty technical details to magic. Since the software application I'm currently developing for work looks great and works beautifully, this is all I need! I have Google for the rest.
I had heard many about many interesting recruiting techniques that Google uses to get the best and the brightest. One of them is the billboard for Solve the Equation, Get an Interview.
Yup, way over my head too. Another is the Google Labs Aptitude Test which is a half-serious spoof with questions like "In your opinion, what is the most beautiful math equation ever derived?" Geek alert!
Most of my technical interview went pretty well as we got along fabulously. The coding sample wasn't too bad, although I was not extremely creative with my answer (reverse the order of the elements of a array in place). Luckily, I dodged questions about pointers since I've only done C# in the last two years and feigned forgetfulness (nothing the feign there, it was never my strong suit). But then I got tougher questions like how would you design a smart pointer interface. Yikes! She seemed happy with my answer, although she corrected me in that the interface must track the number of instances (seems obvious after the fact). I was encouraged when she asked if I could go extra time beyond our allotted hour. The she asked how I would design an assertion class, to which I responded that I use exceptions and not assertions in .NET. I think that was the WRONG answer. I could hear the BZZT! buzzer going off in her head.
Since we got along so well, near the end of the interview I confided in her that I have had really tough technical interviews in the past such as with SolidWorks, where they asked questions about vector geometry as well as programming. She responded that at Google, they need people able to solve those kinds problems as well. Oops (reminder to self, never be so chatty and self-deprecating during interviews in an attempt to be funny). Suddenly the interview was rushing to a close and I knew I had flunked. Needless to say, I received the email with "After carefully reviewing your experience and qualifications, we have determined that there is not a fit for a position," a few days later. I kicked myself for weeks afterwards on some of my answers during the interview.
The one thing that I did get out of this experience was a glimpse into the life of a Google employee. I had been fascinated by their culture (and gourmet meals) ever since seeing the Time magazine photo essay Life in the Googleplex. My interviewer was a woman who has worked at the Google headquarters in Mountain View, CA for 18 months and previously worked at AOL in Virginia. She was a technical leader and seemed quite ambitious. She lived very close to the office and worked long hours although not everyone is expected to (obviously no kids). The group sizes at Google are small, around 2-3 people, and the reporting structure is very flat. They use Agile, Extreme, Scrum and/or Test-driven processes depending on the group's preference. They test their own programs against the Google framework, which is like NUnit, and release products whenever they are ready. It sounded like a really cool, flexible environment, but I'm not sure how this old fogey would stand up to all the young whipper snappers who can name the first 10 digit prime found in consecutive digits of e.