Google recruiter picked my Linkedin profile and contacted me. Initial phone conversation with her was followed by the first phone interview with a manager (each manager I talked to stressed he was totally hands-on, just like other developers, plus carried managerial responsibilities). I'd say this was probably true based on the types of questions he asked. He mostly asked me about my current and past jobs, projects, accomplishments, approaches to design, team work, etc - pretty much "traditional" relaxed semi-technical interview questions. This one went extremely well, as per my recruiter's feedback.
The next one also went well - now with the team lead for the group they wanted me for. A few design questions, one technology question (what do you think of using technology X for solving the problem Y?). Plus one pretty simple algorithm that I was asked to explain on the phone, although my recruiter initially told me about coding using Google's online collaborative tools. It was awkward to just "talk" through the algorithm, instead of writing and talking as I normally do.
Finally, on-site interview. They said they would only have four people to interview me, plus the fifth one would take me for lunch and answer any off-record questions. Bummer - I thought there would be more people, meaning more challenges, but also more chances to show my skills. Four people seemed too few.
Personal interviews turned into a problem right away.
First, no one cared about my professional career and accomplishments. Took me off-guard - is it because they think it's irrelevant to Google? In any event, it's their way, so having figured out their style in the first half an hour I tried just to accept it and move on.
The second problem turned out to be a killer: in most cases I totally misinterpreted the intent and scope of their questions, and I am still not quite sure if was my fault.
One guy asked to sketch the design of some distributed system. I enumerated all the typical issues - distribution, scalability, database synchronization, etc and how to approach them. The guy kept asking more questions, but I thought he was not satisfied and had no clue why. Finally - after good half an hour, he said he basically just wanted me to write the algorithm, that would perform the core function of the entire system, which was computing some stats on the data collected in real-time by that very distributed system. All the challenges of distributed systems design turned out _not_ to be what he was after! Why not to scope the question clearly from the beginning? I gave the best shot at the algorithm, which was trivial, compared to the types of algorithms I do at work. By then I was slightly pissed off by what happened, so I got the right answer pretty slow by my own standards. It almost appeared as if I spent the whole interview trying to write one trivial algorithm!
In that and some other questions, I should have basically ignored much of their content, focusing instead on identifying some core algorithm working on idealized data sets - while the way questions were stated would make you think that the core was designing distributed systems collecting such data!
One week later recruiter told me they'd passed on me due to insufficient algorithmic skills - with the algorithms as simple as the ones asked, that was pretty ironic. I was told everyone liked me on all other accounts, and that the recruiter will contact me in 6 to 8 months to re-try the whole thing. I am not sure if I want to pursue it, but I might.
Having known what I know now (not specific questions, but the expectations behind them), I would've, probably, passed that interview easily. The take-out lesson for me - they are into algorithms and little else, even for senior positions. When approaching their questions, try to start with some simple algorithm expressing the core idea, and ignore everything else - even if this "everything else' constitutes the main challenge in real-life development! If you just write this algorithm down correctly, you score. If their question was more involved, they will probably tell you, but you'll score anyway.
Regardless of whether I personally think that Google's interviewing practices are conducive to hiring the best people (I don't), it is their way, so you just have to accept it if you want to get in.