I applied online. The process took 1 day. I interviewed at Google (Mountain View, CA) in Mar 2010
Interview
They were very prepared to ask thought-challenging questions both in the phone interviews, and in person. Writing code for them (whiteboard) during the in-person interview is a key part of their process.
The people were friendly, very professional, and wasted little time in the meetings.
Interview questions [1]
Question 1
Write an algorithm to sort and merge 2 LARGE data streams on a system where storage is essentially unlimited (but slow) and RAM is limited.
The process took 1+ week. I interviewed at Google (Mountain View, CA) in Apr 2010
Interview
Phone interview was nice with one simple question about hashing and one nice math tricky question
The on-site interview was based on 5 robotp-engineers activating running a pre-programmed interview sessions they received from HR/their manager. I felt they were there just as a input/output port to/from the hiring manager. In two of the interviews The interviewer showed some basic lack of understanding of the stuff related to the question he asked. In one case, the interviewer didn't really understand what's the pivot in quick select and in other he didn't know to find complexity of a recursive algorithm by the regression of the T() .
I think I have very good interviews in 4 sessions though I missed few opportunities to knock them down . I feel I should have been more aggressive to take over the interview flow and thus be able to demonstrate thinking skills . They in general pull you to the lower level of get the solution and then you might miss the real thing which is the skills you should prove in the way. Who cares how many golf balls you can put inside a buss or ho good how you in estimating the size of the buss.
One interview I screw up and I guess that's what failed me. Friends told me you must get all the interviewers vote for you. .
Interview questions [1]
Question 1
what's wrong with the following code :
<template type T >
T accumulate ( vector<T> in)
{
T total = in[0];
for (int i =0; i < in.length() ; i++) {
total = total + in[i];
}
return T
}
I applied online. The process took 1 day. I interviewed at Google (Boulder, CO) in Jan 2010
Interview
The interviewer over the phone asked me to describe an algorithm to find intersection of two arrays of integers. Also asked me to write pseudo code in a shared google docs session. I got the algorithm right the first time, may be not the most efficient right away. But with more prompts from the interviewer I nailed all his questions and gave improved algorithm. I was then asked couple things about what are the hardest things to test. And some other OOP questions. Thats it. He said 'thats good' couple of times. And at the end I felt I would at least get called for on site. But was told within 2 days that they did have anything that fit my profile currently. Not sure what ticks Google !