I was contacted by a recruiter last year and had a series of initial conversations about my areas of interest and what opportunities were available at Google. In my particular case, Google waived the phone screen, and I was able to come directly onsite. I don't know if this is a common occurrence or not. A good chunk of my professional network is employed at Google - so I suspect that having some number of internal referrals may have helped. This is complete conjecture on my part, though. I came to one of the campuses in Mountain View in July 2016 for my onsite interview.
Initially, I had 5 interviews onsite. 4 of the interviews were coding sessions, and 1 interview was a system design question. The coding questions were challenging (one of them in particular I found to be quite difficult). The interviewers were good about making the sessions interactive and asking questions to help guide my thinking. While I cannot share specific questions - reviewing CS fundamentals (algorithms and data structures) will be helpful. The questions were similar to other ones I had been asked by other similar companies I was interviewing with or that I had come across online while studying. They're not quite the same but are similar in terms of topics covered and difficulty.
In all of the interviews, interviewers asked how I could optimize my solution to scale for extreme cases. They didn't necessarily want to see me code a solution that could scale to large traffic volume or lots of data, but they wanted to see if I had an idea on what I could change or improve to optimize what I had written. Make sure you're comfortable evaluating the time and space complexity of your code.
The interviewers were very cordial and were happy to answer any questions I had about what it was like to work at Google.
About a week and a half after my onsite interview, the recruiter had indicated that I had done well enough to move forward in the process. The next step was to match to a particular team. I spent about 2 weeks speaking with various hiring managers and technical leads before finding a team where we mutually felt that I would be a good fit for the team.
After I matched, my packet was then reviewed by an executive (an SVP of engineering). In my particular case, the SVP requested that I come in for one more additional system design interview. I'm not sure if this is a common occurrence or not. Based on my research online and speaking with some of my friends who work at Google, this usually isn't typical.
I came back to Mountain View one more time for a one-hour system design interview. After the interview, I was informed by the recruiter a few days later that based on my performance in the final interview that the SVP had approved my offer, and I accepted shortly afterwards.
In terms of time frame, the process was roughly 6 weeks from when I had my initial onsite interview to when I was extended an offer. In comparison to some of the other large companies I was interviewing with at the time, this was better than average in terms of latency (many of the other companies took longer to turn around a decision).
Overall, the process was pleasant. The recruiters who I worked with were extremely professional and very timely in their communication. They kept me in the loop constantly and responded to questions quickly. The engineers I spoke with onsite were all very nice and professional.
NDA.
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.