I applied online and was contacted by a recruiter. The first interview was with the recruiter via Google Hangout. He explained the interview process and asked some very easy technical questions. It was a pleasant conversation. The next step was the phone screening with a Google employee.
I had quite some time to prepare, so I studied well. I thought I knew everything: binary trees, BFS, DFS, dynamic programming, prefix/suffix trees, heaps, hash tables, and so forth. I knew all the important algorithms and data structures and practiced enough to know how to apply them in clever ways. I also completed many LeetCode questions without much difficulty, including most of the "hard" ones.
Despite all this, I still failed the interview. Frustratingly, the question wasn't that difficult. It didn't require any advanced algorithms knowledge. Without going into specifics, what needed to be done was to go through an array, recognize one of three cases for each index, and update some variables accordingly. What went wrong is that I didn't take the time to think this simple problem through. Instead, I started coding immediately, produced something messy, and kept trying to fix it. Understandably, this didn't make a good impression.
So, my advice to anyone facing a similar situation is the following:
Also, practice coding in a plain text document. I realized I had become too used to syntax highlighting and code completion, and had some trouble writing code in a shared Google Doc.
What is something you did that you're particularly proud of?
The following metrics were computed from 11 interview experiences for the Google Software Engineer role in Zürich, Zürich.
Google's interview process for their Software Engineer roles in Zürich, Zürich is extremely selective, failing the vast majority of engineers.
Candidates reported having very good feelings for Google's Software Engineer interview process in Zürich, Zürich.