This is a more verbose review for those who want to know what the entire process is like. I won't list the exact questions due to an NDA, which I would like to respect, but will outline areas (*).
Some quick background on myself: new grad with a Master's in Computer Science.
Although I did not receive an offer in the end, it was a great experience, and Google left me with a very positive impression. Although the entire process was overall on the slow side, my HR contact was very responsive to emails and kept me up-to-date.
I applied online on the company website. About a week later, I received an email to schedule two back-to-back phone interviews within a week. The second one was rescheduled last minute to the following week. Both phone interviews went very smoothly, and the interviewers were very polite and easy to speak with. Each interview was an hour in length, with maybe the first 10-15 minutes dedicated to resume questions, background, etc., then it quickly became technical. I coded in a shared Google Doc for both. The first interviewer asked for whatever language (I chose C++), but the second insisted on Python (which I was happy to oblige; it's actually my favorite to hack in). I had those two on my resume, so I assume they were probing me to see if I was lying. They will not ask you anything not on your resume, and conversely, don't lie or exaggerate, as one of the largest tech companies encounters that on a daily basis!
I haven't seen any of the questions they asked here on Glassdoor, but they were similar in complexity.
1st phone interview in C++: I was asked to design and code a data structure with specific customization to a queue, big-O analysis, optimization, and short discussions on two other problems (no code due to time constraints).
2nd phone interview: Manipulating lists in Python, writing some SQL queries (simple selects with joins) for a DB schema the interviewer pasted into the doc, and also answering some high-level conceptual questions on data structures. I made a small error in one of the SQL queries that I quickly corrected, but I pretty much got the rest without help. With that said, I couldn't answer the last sub-question in each interview, but they both said it was more of a bonus at that point.
Within an hour of the second phone interview, I received an email saying they were impressed and decided to move on to the onsite interview. This is the part that took a while, almost three weeks just to get it finalized, but it did go smoothly.
They put me in a nice hotel for two nights, which provided breakfast and a shuttle limo (yes, limo) to and from the Googleplex. The office was very nice, the whole dot-com atmosphere still in full swing. Cubicles looked a bit cramped though compared with other places I've seen—four people sharing one big cube. I've had larger, private cubicles in past internships at other places. Not a big deal though, I guess.
Food was fantastic, better than the crap I regularly eat.
My big day lasted four hours, consisting of four one-on-ones, each about 45 minutes, and a one-hour lunch meeting (not evaluated) with a senior who would answer whatever questions I had and gave me a tour of the campus. All interviewers were very nice and helpful and really did try to push you in the right direction—some more than others, naturally. Perhaps one came off as a bit arrogant at times, but still helpful. Another implicitly told me he wasn't into his duties, but ironically was the most fun to speak with.
I guess here's what most people want: Two interviewers asked resume questions for maybe five minutes, but other than that, everything was purely technical: writing code on a whiteboard. The questions ranged from binary search trees (recursion), caching, string manipulation, and some random recursion (I got an easy one). Usually, I was asked to design test cases at the end (no code). They were not very difficult, but it was clear that you really had to know them inside-out. Be sure to constantly talk and explain what you are thinking; much better than long periods of silence, which I had a few times. I couldn't solve a corner (admittedly important) case for the BST question, and my design for the specialized caching question was not too impressive, but it did work. Other than that, I pretty much solved the rest without hints. Any time left over is given to you to ask them whatever you'd like.
I went to the hiring committee, but alas, two weeks later, I received the disappointing email that they were not going to extend me an offer. My HR contact encouraged me to reapply after a year of industry experience, which, depending on my situation at that time, I will consider. Google has the advantage that if they are not absolutely certain you'd be a stellar engineer, they will pass, even if this means false negatives.
Phone:
Onsite:
Both:
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.