I asked a friend for an internal referral. A recruiter contacted me within two days. Since I was local and had a referral, the phone screen was waived, and I proceeded directly to the on-site interview.
Google offers an interview preparation class. Although it doesn't cover anything groundbreaking, it is still worthwhile to attend.
The on-site loop consisted of five 1:1 interviews and a lunch. The lunch is your chance to ask questions about the company and environment; you are not graded on it. The actual interviews included algorithms/data structures questions and system design questions.
I also got the feeling that questions about your past experience weren't that important. They seemed to be a way to help you relax before the more challenging questions.
Sharing specific questions is against the NDA, which makes it kind of pointless. Google's question pool is large, and many specific questions are already posted on Glassdoor. I reviewed roughly 100 interview descriptions with specific questions here and didn't encounter any of them during my interviews. This doesn't mean the time was wasted; it was very good practice.
For the algorithm questions, just know your data structures and basic algorithms. Practice solving problems for a few weeks, and you should do just fine.
System design questions focus on designing Google-scale distributed systems. I suggest reading up on MapReduce and similar concepts. Study or practice with modern NoSQL distributed storage engines, understand common bottlenecks, and you should do well.
Also, read up on the materials that Google recruiters recommend; they are relevant. The "anti-loop" phenomenon can be real, and you can fail the interview even if well-qualified. I was told that people genuinely interested in working at Google should plan on interviewing 2-3 times.
Then came the awkward part: negotiating compensation. For whatever reason, Google wanted me to commit to joining before sharing the numbers. While this was ongoing, I received offers from other companies in the area, which finally forced Google's hand, and compensation numbers were shared with me. The numbers were extremely good (having competing offers surely helped). In the end, however, I decided to accept an offer from another company.
It was a very tough call since, based on a lot of data, Google is a great place to work. Unfortunately, one can only work in one place at a time.
Data structures, algorithms, distributed systems
The following metrics were computed from 1 interview experience for the Google Senior Software Engineer role in Kirkland, Washington.
Google's interview process for their Senior Software Engineer roles in Kirkland, Washington is extremely selective, failing the vast majority of engineers.
Candidates reported having mixed feelings for Google's Senior Software Engineer interview process in Kirkland, Washington.