Google L4 Offer | Bangalore | Dec 2021 | Accepted
Anonymous User
10579

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

  1. Between my phone screen and the virtual on-sites I had interviews with 6 other companies. And because of the interviews, I was constantly solving problems on Leetcode. So by December, I had good interview preparation of problem solving.
  2. I practised a lot of Graph problems because Google likes to. ask a lot of them. For this I went through https://leetcode.com/explore/featured/card/graph/ which is an excellent source for understanding Graph problems.
  3. I was always weak in Dynamic programming and I still am. But this time I atleast prepared for it. Again https://leetcode.com/explore/learn/card/dynamic-programming/ is an excellent resources for understanding various patterns of Dynamic programming. I could solve a lot of easy-medium type DP problems now. But still had/have a hard time solving hard problems. No pun intended :P.
  4. I gave a lot of mock Google assessments on https://leetcode.com/assessment/. This was really helpful as it helps you to keep track of time.
  5. I went through the Google interview card https://leetcode.com/explore/interview/card/google/ and tried to solved majority of them.
  6. I tried to solve top 50 frequently Google tagged questions on https://leetcode.com/company/google/.
  7. Last but not the least, I solved top frequently asked questions of various data structures like 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.

  • Never give up - Just when you think everything is going down the drain, you will see a silver lining. I interrviewed at 6 other companies and unfortunately didn't get an offer from any of them. I was majorly depressed after every rejection but I didn't give up. I was back on track within a few hours/day. Some rejections even motivated me push me harder.
  • Luck plays an important role - Sometimes its just not your day. For one of the companies, my interview was scheduled on Friday 8 pm. The interviewer was visibly annoyed and was rude and arrogant throughout the interview. He ended the interview early and I got a reject the next day.
  • Things take time - After reading a lot on Leetcode and seeing the market right now I was in a hurry to make the switch. This was my mistake. I gave a couple of interviews in really good companies when I was not prepared at all. And when I look back, I just wonder why I was in such a hurry. Prepare a realistic timeline based on your level/experience and commit yourself to it.

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.

Comments (20)