This was my first onsite at Google San Francisco. The Google recruiting team was very efficient and travel/accommodation arrangements were exceptional but unfortunately, when it comes to actual coding interviews it was super bad.
I was told that there are going to be a total of five interviews, 3 technical, 1 system design, and 1 behavioral. I was a little surprised when the behavioral interviewer started asking me a coding question. Since the problem was very very easy (delete a node from a LL), I thought probably he is just warming up. The interviewer was really nice and very professional and looked embarrassed when I told him that I was expecting a behavioral interview as per the schedule.
The first coding interview was really up to the Google standard. I was impressed with the interviewer. She was very precise and efficient. She started with an easy problem and progressively added more constraint to make it challenging but at the same time, it was fun working on the solution with changing constraints. I made some minor mistakes and after running a small example, I was able to fix it. The interviewer was pleased with the overall solution.
The next guy started with a bit manipulation question straight away. Although the problem was very easy and straight from the green coding book, being 15 years away from college I was not able to solve it using bit manipulation. I was able to solve it using some other techniques and the interviewer was okay with that. The next problem was one of the “hard” and a slight modification of this one on Leetcode (https://leetcode.com/problems/confusing-number-ii/). I was able to get a working naive solution but he was expecting a faster generative solution.
The system design interview
The problem was from a real problem Google hardware team was facing. Although it took me a while and tons of questions to understand the networking domain since I never worked in networking or hardware.
The worst interview
After a very pleasant lunch interview, next interviewer showed up. He was a replacement interviewer since the originally scheduled interviewer got some priority work. He has a very heavy east European accent and very hard to understand. This interviewer was what Steve Yegge would call bass-sole. He started explaining to me a very complicated version of a really simple problem. We spent nearly half of the time trying to understand the problem statement. The problem was a simple modification of MST (minimum spanning tree). I started with a naive solution and told him that we can use a similar algorithm and recursively solve it. His emotionless face showed no expression nor he agreed or disagreed. Instead, he misled me to a solution with the decision tree and spent 5 mins to explain to me why its running time is exponential. In the end, I scribbled an MST like solution in 3 mins as much as I can but I knew way before the end of the interview that its the end of my Google run for this time.
So overall it was a very ordinary and mediocre interview experience. I never felt challenged (except for the first interview) and I think they did not fairly evaluate my skills. Before the interview, I was slightly nervous since its a Google interview and with so much hype and tons of youtube videos about the problem-solving skills, communication, etc But at the end, I felt that most of the Google engineers don’t even have those skills themselves.
I understand that Google interviews tons of candidates and it’s not possible to get the good interviewers for each candidate but at the same time, it’s not fair to candidates since we invest a lot of time and efforts for the interview prep and at the end its just a game of chance.