I just finished the interview process with Google and wanted to share my experience. I found these type of posts very helpful during my preparation, so I hope this can help some other new grads. I won’t be sharing the exact questions or other identifying details, but I hope the information is still useful.
1. Background
- Computer Science B.S. from highly-ranked private school
- 3 research internships
- 0 YOE (new grad)
- Applied online
2. Onsite (5 rounds)
All technical interviews followed the same format, with an easy question that would be modified into a medium-hard question once the initial question was solved. For each interview I will generally describe the type of problem, my response, and the score I think I received. My recruiter didn’t share my actual scores, so these are just my own estimates.
Interview 1
- Question: Finding patterns in an array
- Response: This interview went almost perfectly. I had practiced the same problem the week before so I had it virtually memorized. I quickly finished a 2D dynamic programming solution and the interviewer said the code was “very well written”. I felt I did a good job communicating throughout. We spent the last 15 minutes just talking about Google. I left this interview feeling very relieved and confident for the remaining interviews.
- Estimated Score: Strong Hire
Interview 2
- Question: Graphs
- Response: This was definitely my worst interview. I solved the first problem easily but spent too much time coding. Then I used the wrong algorithm for the follow-up problem, and the interviewer pointed out how it would fail certain cases. I don’t think my communication was great either. Definitely sent some negative signal with this one.
- Estimated Score: Lean No Hire
Interview 3 (Behavioral)
- Question: Basic behavioral questions about working with others
- Response: This was a very straightforward and literal experience rather than a conversation. The interviewer kept selecting questions from a list. We sometimes had trouble communicating because the interviewer did not have great English fluency. However, I felt like I gave thoughtful, detailed answers to all of the questions and expressed myself clearly.
- Estimated Score: Lean Hire / Hire
Interview 4
- Question: Determining certain properties of strings
- Response: I solved both problems quickly and with decent communication. We actually spent most of the interview discussing efficiency. The interviewer seemed unsure of the time complexity of my algorithm. (I looked up the problem later, and it turns out he overestimated the efficiency of my approach. I’m not complaining.)
- Estimated Score: Lean Hire / Hire
Interview 5
- Question: Open-ended question involving randomness
- Response: It’s hard for me to judge my performance because the question was so open-ended. I just threw ideas around before settling on the approach the interviewer liked best. I thought I did a decent job communicating and proposed an ok approach to the problem. We had an interesting chat at the end about my past experience.
- Estimated Score: Lean Hire (?)
3. My Thoughts
After the interview, I looked up the questions I hadn’t seen before and found almost all of them on LeetCode. Remember to practice graphs and dynamic programming!
I did about 50 LeetCode problems in the month leading up to the onsite. I would advise applicants to focus on the quality of preparation rather than just churning through hundreds of questions. Make sure you understand the fundamentals of DP, search algorithms, etc. I tried to replicate the interview environment while practicing. I would copy a LeetCode prompt into a Google doc and pretend I was talking with an interviewer. I would go over examples, write out code, and run tests cases in the doc while explaining my thoughts out loud. Then I would copy the code over to LC and see if it worked.
4. Result
About a week after the interviews, I heard from my recruiter that I had passed hiring committee and was moving on to team matching.