Hi community. I want to share my Google Interview experience.
So around June I had 3 recruiters approaching me on LinkedIn/Gmail for Google Interview requests. At that time I ignored all of them because I hadn't prepared DSA/Algo for years. But after reading various threads on Leetcode, I finally decided to take the plunge.
I contacted one of the recruiters and we scheduled a call in mid July. After briefly talking about the opportunity and my interests, the recruiter asked few MCQ questions like the time complexity of various sorting algorithms etc. When he asked me the date for the phone screen round, I asked him to schedule it in early September.
Phone Screen:
In this round, the interviewer was not friendly at all and directly jumped into the interview without any introduction. He asked me an array question which I solved using min-heap. I would say the level of the question was medium. I finished the question in around 20 minutes and within the next 10 minutes I dry ran the code and discussed various edge cases with the interviewer. There were no follow ups and the interview ended the interview early within 30 minutes instead of the usual 45 minutes. Because the interview ended early, I was not sure about the result.
Feedback
The phone screen interview feedback was really positive. I was strong in communication, coding and taking care of the edge cases. The recruiter asked me my availability for the next 4 rounds which involved 3 coding rounds and 1 Googleyness around. I scheduled them in the first week of December.
Interview Preparation
graph, TRIE, trees, stack, queue, heap, segment-tree, linked-list, union-find, minimum-spanning-tree. And various algorithms like recursion, bfs, dfs, topological-sort, Dijkstra's, kruskal's, backtracking, greedy and others.Finally it was time for the virtual on-sites and I was expectedly nervous. I was majorly anxious 1-2 hours before all the interviews.
Round 1 (Coding)
The interviewer was super nice. There was a question around string which required me to use a TRIE data structure. I was able to finish the code in 25 minutes and used the next 5 minutes to dry run my code. There was another follow up and I was able to quickly code that also. The last 5 minutes were for any questions I had. In all, the interview went great.
Round 2 (Coding)
This interviewer was also very nice. He gave me a question which required me to use stack. After solving the question, there were 2 more follow ups to the same question. But I was fast enough to solve all the requirements within 40 minutes. The remaining 5 minutes were used for discussion.
Round 3 (Coding)
The interviewer was not friendly at all. He directly jumped into the question. There was a matrix question which involved BFS. Then there was a slightly hard follow up to this question. I solved the question using DFS but after writing the code for this problem the interviewer asked me whether I had a more optimized solution for this problem. Only 5 minutes were remaining and I couldn't think of any optimized solution.
Round 4 (Googleyness)
This was mostly behaviourial questions. They want to check your culture fitment. Questions like what process did you bring to your current team/company etc were asked.
Feedback
The recruiter was quick enough to schedule a callback within the next 2 days. I couldn't sleep the night before. Finally the call with the recruiter happened and he shared that I had very strong performances in the first 2 coding rounds. In the third coding round, my performance was not very strong. So there was a good chance that I will get an L4 but there was a possibility of a downlevel to L3 as well. He assured me that there will an offer from Google but the level was not sure. After the call, he sent my packet to Hiring committee. And he came back with an offer within 2 days. I was offered L4 !!!.
Finally I would like to conclude the post by saying these things.
I hope this post is useful for some of the folks. Let me know if you have any more questions in the comments. I'll be happy to answer them. All the best folks for your journey!!
Edit
Since few people have been asking why I didn't have system design round. For L4, I had the option of 2 coding + 1 system design or 3 coding rounds. I went with the latter. I have only 2 years in Backend. Before that I was working in frontend. So I was not very comfortable with system design.
Also, this job is within the Google Cloud organization. And there are only 3 technical interviews in this organization. Other organizations still have 4 technical rounds as far as I know.