The process is pretty standard: two phone screens followed by an onsite. The onsite was much more difficult than the phone screens, and the bar to clear is also high. Obviously, Google being a great company, there is nothing wrong with that. I would suggest their phone screens also have the same high bar as the onsite. This will help in not wasting the candidates' time and money, and theirs.
The onsite consisted of 5 sessions. The first two were dictionary and bit manipulation questions. The third was a question about how to design a system that handles and logs the URLs clicked on. The last two were pretty tough graph questions for someone who does not deal with graphs in his daily work.
Know the usual graph algorithms. Actually, you need to have them at your fingertips and be able to implement them in a matter of minutes so you can solve the real problem that depends on those algorithms. They seem big on graphs.
I eventually got to the solutions to all the problems with a few stumbles along the way. But I guess my lack of confidence in tackling graph problems showed.
The interviewers are friendly and professional. They give you clues when you are stuck. There is sometimes a shadow interviewer who is learning and taking notes.
Practice writing code on a whiteboard. Know your data structures and algorithms. Practice problems on multiple websites like HackerRank, CareerCup, etc.
I heard approximately ten days later that they are not interested in moving forward. Not a surprise.
Finding circles with a certain amount of vertices in a graph.
The following metrics were computed from 3,728 interview experiences for the Google Software Engineer role in United States.
Google's interview process for their Software Engineer roles in the United States is extremely selective, failing the vast majority of engineers.
Candidates reported having very good feelings for Google's Software Engineer interview process in United States.