The interview process consisted of three steps:
I felt each stage was fair but difficult. For the online challenge, I had to answer two questions within 60 minutes. I was able to finish one and pseudo-coded the second. I would prioritize writing clean and correct code for this part. Even if you don't arrive at the solution, document your thought process very clearly.
The phone screen asked standard C++ memory management questions in addition to a string/array manipulation question.
The on-site interview consisted of two interviews in the morning, lunch with an engineer, and two more interviews in the afternoon. I felt three out of four interviews went really well, and I struggled through one of them. Questions included BFS/DFS, graph traversal/construction, linked lists, string array manipulation, and key-value mapping. I felt all of the questions were standard, but definitely required thinking and mapping out your thought process.
Additional Advice: Focus on clean and correct code and talking through each of your steps. While this advice is common, continuing to communicate even when you're stuck will likely result in your interviewer providing prompts and hints to help you move forward. The Google interview process is tough, but spending 2-3 months preparing with Cracking the Code Interview beforehand should give you a competitive chance of receiving an offer.
The only con was the amount of time it took to hear back from each stage.
NDA, but LeetCode type questions / a little bit of design.
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.