I was contacted by a recruiter through my LinkedIn profile. The recruiter had a particular team in mind for me. It turned out I knew some people who already worked there, and they highly recommended me, so I was able to bypass a phone screen.
I was told I would have to do all of my interviews in either C, C++, or Java. I didn't know any of these languages particularly well (my professional experience has been more in dynamic scripting languages), so I told the recruiter I would need some time to review Java. I managed to drag it out for a number of weeks, but ultimately did not come in adequately prepared for Java coding exercises.
The interview consisted of four or five back-to-back, one-hour, one-on-one sessions with engineers asking challenging algorithm questions. One session seemed more focused on system design.
Several things were very challenging about this interview:
I did come away feeling like Google would be a great place to be an engineer. The interviewers seemed to want me to succeed for the most part.
Write some code to parse a particular grammar. The grammar was ambiguous, so you would have to be able to discuss how your code impacted the way that statements in the language would be interpreted.
The following metrics were computed from 748 interview experiences for the Google Software Engineer role in Mountain View, California.
Google's interview process for their Software Engineer roles in Mountain View, California is very selective, failing most engineers who go through it.
Candidates reported having very good feelings for Google's Software Engineer interview process in Mountain View, California.