Tags: , | Posted by Admin on 3/7/2008 4:35 PM | Comments (4)

Late in December 2007, I received an email from a recruiter at Google interested in discussing some software engineering positions at the company. Despite being fairly happily employed, I decided to follow up because, well, it’s Google! I forwarded an updated resume and scheduled a phone interview for a few days later in which the recruiter inquired further about my background, current job, and development skills. He also asked about my research assistantship and my publication from the lab. After I spoke for five or ten minutes, the guy gave me an overview of the interview process (one or two technical phone interviews followed by several on-site interviews) and explained that the questions ahead would be very technical and difficult. To this end, he inquired about my experience in theoretical computer science, particularly algorithms, data structures, and distributed systems. I answered honestly, stating that I did not major in computer science in college, but that I had a solid foundation from high school, and that I accrued plenty of relevant experience in the mean time. He seemed satisfied and suggested I brush up on big-O notation and other comp sci basics. I think I went to B&N one night and skimmed a few chapters of Programming Pearls.

Technical Phone Intervew

For the technical phone interview, an engineer from Google called me exactly at the scheduled time, and conducted an interview for exactly 45 minutes. I was surprised at how punctual he was. For the first half of the interview, he asked me about various items on my resume, honing in on the applications I developed at the research lab, and also my experience in video game development. He allowed the interview to flow naturally, which was nice. E.g., at some point I mentioned Flash, and he followed up by asking my opinion of Flash versus JavaScript, which sparked a tangential conversation in web usability. A few times he asked questions like “How would you do that better?” or “Do you have any improvements on that idea?” I just tried to keep fluid throughout the conversation, and it went very well.

The second half of the phone interview revolved around a programming problem. He started off by asking some easy questions about linear versus binary search algorithms, and then presented a more difficult problem concerning a variably shifted sorted array. To get the ball rolling, I rattled off the obvious but inefficient solution, stating why it was inefficient and seguing into the solution the interviewer was after. I whipped out a pencil and paper and started drawing up a solution, making sure to provide frequent updates to the interviewer about what I was thinking or writing. In retrospect, the problem was not too hard, but having to do it over the phone added a level of distraction. I had a rough solution after a few minutes, at which point I recited the pseudo-code line by line. When I finished he said “Good” and asked if I saw any problems with the algorithm. I did a once over and identified two mistakes in my code and corrected them verbally.

In the last few minutes of the phone interview, the interviewer gave me a chance to ask him some questions. I quickly asked about his role at Google, the typical development process, and jokingly about the food and if they have sleeping rooms for engineers like Yahoo. He said he works on Google Finance, and that projects are purposely kept small and agile. He laughed at my joke questions, confessing that the food is excellent and that Google does not have any sleeping rooms.

On-site Interviews

Shortly after the technical phone interview, I received a friendly email from a different recruiter asking to schedule a day of on-site interviews at the NY office. I was again reminded about the “caliber” of the upcoming questions, and scheduled a date a few weeks down the line. At this point they sent me a few forms including an NDA to fill out and bring along to the interview. In preparation, I practiced developing algorithms and writing code on paper without a computer, did a few rounds at TopCoder, and skimmed some academic papers published by Googlers (specifically, the original Google paper, MapReduce, Google File System).

Unluckily I came down with some illness right before the interview so I ended up postponing it for another couple of weeks. Originally I was really torn about postponing the interview, but when I called my recruiter she told me it was absolutely no problem and that I did the right thing. I felt a lot better. A few days before the second date, as if the universe was playing a trick on me, I started feeling under the weather AGAIN, but I wasn’t about to postpone twice so I committed.

On the morning of the interview, I did have a bit of a scratchy throat, but once the adrenaline kicked in I felt okay. [Travel accommodations expunged to preserve anonymity.] I arrived way too early, so I decided to “people watch” at the entrance for a bit. I got a cup of green tea from a street vendor nearby, took a sip—disgusting—but continued using it as a hand warmer for several minutes. It was very easy to identify which people entering the building were Google employees; they were the young-looking ones in jeans and hoodies. Finally I made my descent into the building, signed in at the lobby, and took an elevator up to the main Google floor. The elevators doors opened to a wide open lobby area. Behind the front desk was a giant Google Earth display animating from point to point on the globe. There was also an animation of search phrases projected on the floor. (In the few seconds I was spectating, I saw the term “yahoo.com” twice. Who does that?!) The receptionist instructed me to sign in and wait for 15 minutes or so, as I was still very early at this point. She asked for my interview contact, which I provided, but she wasn’t able to find him in the computer. Apparently the original recruiter I was in touch with wasn’t working at Google anymore. I gave her another name I remembered from correspondence and she straightened it out. I sat down, opened up my laptop, and hopped on Google’s free wireless network. I IM’ed some people and took some deep breaths. I was pretty nervous. A few minutes ticked by and before I knew it, my recruiter was there to greet me.

The New York Google office is huge. It spans an entire city avenue. We walked for a minute or so to my interview room, passing all sorts of fun areas: offices, conference rooms, kitchens, play rooms, giant blue bouncy balls, all very “open air” style, very welcoming. The interview room itself had two glass walls, which were considerably friendlier than the usual closed-doored interview rooms everyone is accustomed to. The recruiter gave me a prospective overview of the day—2 or 3 interviews, lunch, and then X additional interviews—claiming that they didn’t know the schedule for the second half of the day just yet. In actuality I think this was just their way of saying, “We may decide you suck after 2 or 3 interviews, at which point we’ll quit wasting our time on you and kick you out.” The recruiter told me to help myself at the kitchen nearby and to ring him if an interviewer didn’t show up within a few minutes. He left the room, and I did a set of push-ups to blow off some steam. In a few minutes, my first interviewer showed up.

The NDA prohibits that I talk about the guts of the interview, but each interview followed the same format as the original phone screen: 5 or 10 minutes of resume-centric discussion and then a programming problem. I had 2 interviews in the morning, then lunch accompanied by an engineer, then 4 additional interviews after lunch. For the last interview, two interviewers were present. Compared to the phone screen question, the programming problems for the on-site interviews were much more difficult, but manageable. In many of the questions, I stated the obvious “brute force” solution, but quickly set off on the “smart” solution. The interviewers wanted you to employ clever data & CPU optimizations, recursion tricks, and heuristics. A few of the interviewers concentrated at least briefly on non-programming questions (class design, system design, usability, asymptotic analysis), and one of them focused on obscure JavaScript (which I nailed, WOO!). I gave myself an A or B+ for most of the interviews, but I did need some prompting at two or three points throughout the day. Overall, the questions were on the level with what I anticipated, and I was happy with my performance. The Google interview process lasted all day and was very exhausting, and I felt an awesome wave of relief when it was over. They also gave me a cool Google T-shirt before I left. Unfortunately it’s way too big for me, but it’s a great memento.

No dice

A few weeks later, I got a vague email from the recruiter asking for a convenient time to “talk.” Immediately I got a bad vibe from this and braced myself for rejection. Sure enough, when the recruiter called, he informed me that I did very well, but that the hiring committee was not going to move forward at this point. He told me that the bar has been incredibly high for engineers lately, and that they are only accepting candidates who received enthusiastic reviews across the board (hinting that one or two of the interviewers gave me a less-than-stellar review). He apologized for not being able to provide more detailed feedback, and encouraged me to apply in a year or so when I felt motivated. Bummer.

After all that stress, it’s downright frustrating to not have any clear feedback. Looking back, I can only think of one instance where I didn’t get the answer, and maybe two or three instances where I needed a slight “push” from the interviewer. I can only assume it was one of those guys who gave me the negative review. I definitely remember more instances of “nailing it” than struggling, but, like the recruiter said, they are looking for aces.

Even though I didn’t get an offer, I’m proud of myself just for making it to the end of the process. I think I would have been a good fit at Google, but for now it’s behind me.

Original story

Comments (4) -

George on 3/25/2008 10:45 PM The ridiculously lopsided applicants to positions ratio (and the whole "working on cool projects for less pay than square projects") reminds me a lot of new PhDs looking for jobs as professors.
I interviewed at a first tier math department (not Princeton, but Tier I according to the AMS) and they had 1200 applications for 5 jobs. I ended being #6 on their list.
In situations like this, the only way to stay sane is to realize it's not about you and your intrinsic professional worth. It's about them trying to fit together the best team they can, while putting finite resources into evaluating a mountain of candidates, most of whom are well-qualified.
Dirk on 3/26/2008 6:04 PM Your experience sounds eerily familiar. While I haven't heard back yet, I didn't exactly nail it so my expectations are low. Like you, I am lucky to be happily employed so I don't have much to lose by trying. Overall though, I am proud of how I handled it. Having 15+ years of experience, it was disappointing that they didn't even look at my resume. With 2 weeks to prepare for the interview, I drove myself absolutely nuts brushing up on my comp sci.
Doyle on 4/28/2008 4:05 AM Nice post, and bad luck on not landing the job - sounds like you don't need it anyway.
I would never submit myself to Google and ask them for a job, or even accept their offer for an interview if they wanted me actually.
I guess they have no reason to accept anything but the best of the best
So glad to be in a satisfying job right now....
Egerton on 5/28/2008 10:28 PM I recently had very similiar interview experience as you with google. I thought my interview went pretty well, there were only a couple of times when the interviewer would give me some hints, and I was able to give them the answers they were looking for. So my guess is that they probably are cutting back by only hiring candidates that can 'wow' all interviewers. I actually have a friend who joined google last year and she told me she definitely failed to answer some questions and she still got in. Probably it is just harder to get in this year.

Add comment

  Country flag
  • Comment
  • Preview