The interview process began with a phone/computer interview. I was on the phone with a software engineer, and we were sharing an online whiteboard to look at code. I was given a short program in Java (equivalent programs in other languages were available) and asked to identify what it did. I was then asked to optimize the code to make it faster and to analyze its Big-O complexity.
The second round of interviews was on-site and face-to-face. I was asked to solve problems on the whiteboard.
General advice:
You really have to know your fundamental data structures and algorithms inside out. Trees, graphs, linked lists. Don't forget Big-O.
You have a simple search consisting of search terms that are OR'ed together. For example: "Cats" OR "Dogs". You have a set of documents that possibly contain those terms, and you have the positions of those terms in each document. How would you search for "Cats" AND "Dogs"?
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.