How To Land a Job at Google
mashable.com
mashable.com
1) Phone screens: If you aren't referred or we don't really get a good feel from your resume what kind of developer you are, there are preliminary phones screens which can seem...insulting to experienced programmers. Then you get a phone screen with an engineer.
2) On-sites: These are often with people who are -not- on the team you may be joining. We try to avoid team interviews for a number of reasons. But you are likely to talk with 1 or 2 people from a future team .
3) In engineering interviews, you shouldn't see stupid manhole questions. You should see 'how would you do' questions, preferably ones that allow you to talk about how it should be solved, write on the whiteboard code that would solve it, and then what kind of optimizations you would apply to the problem, etc... Through this discussion we can see what kind of developer you are. This should ideally be a discussion among peers about how to approach a programming/Google relevant/computer science problem.
4) Get a reference. Want the best kind? Write open source code that gets used and point it out in your cv/res. That'll lead to Googlers who you can use to put your resume in the system (the best way to go, trust me) A reference that has familiarity with your code and a subsequent link to that code in your cv is gold if you are a decent programmer. I've see people who interview really poorly be saved by their code submissions.
Happy to answer other questions.