Hello all,
I have completed my Google on-site interviews and just received a rejection. I am summarizing my complete interview experience here.
I applied in early May, and the recruiter first reached out to me in late June to set up my phone screen.
Phone Screen: The interviewer was from the Google Maps team. I was asked a LeetCode medium-level question that involved dynamic programming and prime numbers. The initial question was quite easy, and I discussed my approach and wrote the code within 20 minutes. The follow-up built on the previous question and required caching previous results. I explained the solution and wrote the code in the remaining time. The interviewer asked me about time complexities and if there were any optimizations I could think of.
I received an email that I had cleared the phone screen the next morning, and I had a call with the recruiter the following day to set up my on-site interviews.
I asked for three weeks to prepare for my on-sites and had them scheduled in mid-August.
On-Site 1 (Googleyness Round): This was a Googleyness round. I had a wonderful interviewer who really helped calm my nerves for the stressful day ahead. The questions were basically situation-based/hypothetical questions that revolved around teamwork, conflicts, and time management. I had a very engaging conversation with the interviewer; it felt more like a chat with a co-worker than an interview.
On-Site 2 (Coding Round 1): This was my first coding round. The initial question was a simple array/two-pointer question, but the interviewer had four follow-ups in the span of 45 minutes. Each follow-up was harder than the previous question and needed the use of sliding windows, two pointers, and DP. I managed to get the optimized solution and time complexity for four of the questions, but the interviewer posted the last question with only three minutes left, and I couldn't come up with the approach in the remaining time. In the end, he explained how to solve the question, which involved using the solutions of three of the previous questions. Apart from the last question, I think I had the optimized solution and good code for all the questions I was asked.
On-Site 3 (Coding Round 2): This was my most challenging interview. I had an interviewer who maintained a poker face throughout the interview, with no expressions or hints whatsoever. He just told me his name, asked for mine, and posted the question right away. The question was quite challenging, involving points on a two-dimensional plane (graph), BFS, topological sort, and a bit of computation, with a follow-up that used DP. I managed to explain the optimized solution for the initial question, discussed the time complexity, and wrote the code (which was really big and took a lot of time). Then, I was asked the follow-up. I gave the interviewer two different approaches that came to my mind, to which I only received nods. I ended up selecting one, explained the time complexity, why it would be better than the other, and started writing the code. Halfway through the code, with five minutes left, the interviewer stopped and said he always left the last five minutes for questions from the candidates. I asked him a few questions about his journey to Google and the team he was working in, to which I got short, generic answers. He ended the meeting with three minutes left of the 45 minutes.
On-Site 4 (System Design): This was my best round. I had a great interviewer who introduced himself, asked me about how my previous interviews went, and then posted the question. The question was not a typical LeetCode problem; it was more of a data structure design for a specific case. I explained the working and how I would use linked lists. He asked me about the time complexity and asked me to write the code. Then he modified the question a bit. I was going down a different approach, and he gave me a couple of hints, and I was able to come up with the expected solution quickly and wrote down the code within a few minutes, completing the questions with 10 minutes left. Then, we had a good conversation about Google and what a day as a SWE would look like. I felt the interviewer was really satisfied with how I performed and felt really good about this interview.
After my on-sites, there was a long wait of three weeks before the recruiter reached out to me only to say "NO." I felt that I had performed quite well apart from a couple of hiccups, but quite good is not good enough for Google, apparently. I was not given any feedback on how any of the interviews went. The recruiter emailed me in the last hour of the previous day, saying she had the results of my interview and wanted to schedule a call for the first hour of the next day. It was just a three-minute call; we exchanged pleasantries, and she said that it was a close call but, unfortunately, the team decided not to move forward with my application at this time and that she could not share any feedback whatsoever.
I hope this helps anyone who is interviewing at Google. The questions were not really that complicated; it's just that they are left open-ended, and they expect you to ask a lot of clarifying questions.
Array dp Data Structure design graphs
The following metrics were computed from 142 interview experiences for the Google Software Engineer role in San Francisco, California.
Google's interview process for their Software Engineer roles in San Francisco, California is extremely selective, failing the vast majority of engineers.
Candidates reported having very good feelings for Google's Software Engineer interview process in San Francisco, California.