Sitemap

My Interview Experience at Google [L5 Offer]

Comprehensive Insights: A Deep Dive into the Journey from Preparation Through Interviews to Securing the Offer.

9 min readNov 25, 2023

--

Press enter or click to view image in full size
Google gif

Note: I won’t be able to provide the exact questions due to the confidentiality agreement (NDA) in place.

If you are only interested in my preparation Go here
If you are only interested in my Google interviews Go here

I used to work at Facebook London with the Instagram team when I started thinking about moving back to India. I might share my reasons for this in another article.
Checkout my interview experience at META

In November 2022, a Google recruiter contacted me. They mentioned an opening for an L5 role in Bengaluru and asked if I was interested.

Since I was already contemplating a move to India, and I had previously interviewed with Google but was offered a lower position (L4) than I had aimed for, I had joined META at the E5 level after that experience (you can find details about my META interview here).

I informed the recruiter that I wanted to schedule the interview for March 2023. This was because I was about to become a father, and I wanted to allocate time to my family during this significant period.

The recruiter agreed to my request and provided interview preparation materials. He mentioned that he would follow up in March. In the meantime, he consistently checked in to see how my preparation was going.

This time around, I had a unique challenge in my preparation journey — a delightful addition to the family, a newborn. With diapers and coding competing for my attention, carving out focused study time became quite the adventure! I had about 25–30 days to master both the art of baby soothing and acing the interview.

Me with my daughter
Me with my bundle of joy.

My preparation

Solved approximately 75 LeetCode questions.

Emphasized the following topics for DSA round:

  • Graph: BFS, DFS, Topological sort, Shortest Path
  • Tree: Binary tree, Binary search Tree, N child tree
  • Trie: Prefix search, Word search with counts
  • Disjoint set union
  • Heap: Median in a stream, Sliding window maximum, Top k elements
  • Binary Search: Lower bound, Upper bound, Questions where binary search is not the obvious choice
  • Sliding window and 2 pointers based questions
  • Dynamic programming
  • Strings: KMP, String sorting
  • Adhoc questions on the application of Array, Stack, Queue, HashMap, TreeMap

System design preparation:

Gave 7 mock interviews — 3 with friends and 4 on Pramp.

My Interviews

Round 1 DSA (45 minutes)

Tree, Post order traversal, Topological sorting

During the interview, the interviewer shared a lengthy question in the code editor and asked me to read it. After reading, I asked several clarifying questions to better understand the problem.

Once I had a clear understanding, I suggested using a Tree as a data structure and applying post-order traversal to solve the problem. The interviewer then requested that I explain the solution using an example, which I did.

After explaining, the interviewer asked me to implement the solution. As I started writing the code, I aimed to make it modular. For this purpose, I created a TreeNode class, a TreeClass, and a separate class specifically for solving the problem. Due to time constraints and my focus on modularity, I faced a bit of a challenge, but I managed to write a working code in the end.

The interviewer had a few follow-up questions but couldn’t ask them due to time constraints. By the end of the round I knew that I messed up. I realised later that same problem can be solved using topological sorting.

Round 2 DSA (1 hour)

N children tree, Tree traversals

For the second round, I was surprised to find that the interview was scheduled for 1 hour, as Google’s DSA rounds typically last 45 minutes.

Once the interview began, I quickly realized why this round was extended to 1 hour. The interviewer presented the problem using a Google Doc that contained a lengthy question spanning 4–5 pages. Additionally, there was a slide with a diagram to provide a comprehensive overview of the problem.

Upon seeing the extensive problem, I felt a bit nervous. While reading through the problem, I found myself forgetting details from earlier pages, reaching page 3. Thankfully, the interviewer was very helpful and took the time to explain the problem. I asked numerous clarifying questions, and it took me approximately 20–25 minutes to fully grasp the intricacies of the problem.

Similar to the question’s complexity, the solution for this problem was also extensive. The problem was centered around trees, specifically n-children trees. Despite the challenge, I managed to write the complete code. By the end of the round, I was a bit sweaty, but I felt confident that I had performed well.

Round 3 DSA (45 minutes)

Medium Leetcode problem, Tree, Heap, Recursion

This round differed from the previous two. The interviewer presented a standard LeetCode problem, specifically a medium-level one with a focus on trees and a slight modification. I swiftly offered a solution, verified it with examples, and was then asked to write the code. I promptly coded the solution and provided both time and space complexity.

Follow-up 1: The interviewer altered the problem slightly and asked how I would modify my code to accommodate the new feature. I quickly identified the necessary change, making my code not only adaptable to the modification but also more modular for accommodating such changes easily by using strategy design pattern.

Follow-up 2: The interviewer presented a challenging follow-up question. It took me some time to find the optimal solution, and explaining the solution with examples also consumed some time. The modifications I had made earlier to enhance code modularity proved beneficial in quickly adapting to the changes asked in follow-up 2. I was able to write code within time.

Follow-up 3: This is around productionizing my solution. I provide few approach through which my code can work in production environment.

After concluding this round, I felt confident.

After the first three rounds, the recruiter shared feedback in one of the DSA round I received mixed feedback. I already suspected this because I felt I didn’t perform well in round 1. The recruiter recommended an additional DSA round to ensure there were no concerns from the hiring committee, considering the strong hire feedback from the other two rounds.

Round 4 DSA (45 minutes)

Strings, Sorting, Binary Search, Trie

I was already feeling nervous about this round. The interviewer presented a problem I hadn’t encountered before. While the problem itself wasn’t overly difficult, it required applying multiple DSA concepts like hashing, sorting, binary search, upper bound, lower bound, and considering corner cases. Additionally, the interviewer requested proper tests to be written.

After pondering for about 5 minutes (and thinking out loud), I managed to devise an algorithm to solve the problem. I explained the solution, verified it with examples, and then provided the time and space complexity of my solution. The interviewer then asked me to write the code. I quickly wrote the code, created test cases, and ensured that all corner cases were covered.

Follow-up 1: The interviewer posed a follow-up question, making a slight modification in the input and expecting an even more optimal solution. After considering a few examples, I came up with a solution using a Trie that met the interviewer’s expectations.

Follow-up 2: The interviewer inquired about the scalability of my solution for handling very large datasets and its viability in a production environment. I discussed the option of sharding the trie data structure, outlining various strategies for effective sharding. Additionally, I presented an alternative approach using a key->value store, although we did not delve deeply into this alternative. After this interviewer asked me implement trie based solution

The code for this follow-up was lengthy, and I had to rush to finish it within the time limit. Overall, this round went well.

Round 5 System design (45 minutes)

The interviewer tasked me with designing one of Google’s products. Armed with prior knowledge of the system, I efficiently supplied functional and non-functional requirements after a few clarifying questions, confirming them with the interviewer. The conversation then evolved into a detailed discussion about specific features, making this round more conversational in nature.

We delved into multiple approaches, thoroughly examining the pros and cons of each. The interviewer’s interactive and supportive demeanor transformed this round from a typical interview into a technical discussion. Overall, it was a great experience.

However, on the downside, I was uncertain about the performance in this round.

Round 6 Googlyness (45 minutes)

We delved into my prior work experiences and explored the reasons behind my decision to leave META. Following that, the interviewer posed some Googlyness questions, which were situational in nature. The session featured several intriguing scenarios presented by the interviewer, and I responded by drawing from my past projects and experiences. The interviewer maintained a friendly and supportive demeanor throughout.

In summary, this round unfolded smoothly, and I felt it went well.

Cleared Google’s interview

I waited eagerly for the results during this long period. The recruiter mentioned that they were waiting for the Hiring Committee’s decision in our few interactions. After three weeks, the recruiter called to congratulate me, sharing the good news that I passed Google’s interview, and the Hiring Committee gave a positive result.

Offer Negotiation and Acceptance

This time, I didn’t engage in much offer negotiation, unlike when I received an offer from META. The initial offer was in line with my expectations, so I happily accepted it.
Similar to META, Google offered generous relocation benefits, making the transition from London to Bengaluru much smoother.

Team matching

The team matching process at Google is quite extensive. I had several meetings with various team managers to find the right fit. Eventually, I joined the Google Cloud Databases team, which I found to be very intriguing.

I officially joined Google on October 16, 2023. Here’s a brief timeline of the journey:

  • November 2022: Recruiter reached out to me
  • March 2023: I underwent the interview process
  • August 2023: Received the offer
  • October 2023: Joined Google

Key Takeaways

  • Develop a solid grasp of data structures and their applications. Tree questions were a recurring theme in three rounds of my interview.
  • Google emphasizes the quality of your solution, unlike META, where speed is the primary focus.
  • The responses to follow-up questions carry significant weight.
  • Be prepared for lengthy problems and writing substantial code during the interview.
  • Some follow-up questions may delve into complexities related to implementing your solution in a production environment.

Like most software engineers, landing a job at Google has been a dream of mine for many years. Google is revered for its engineering culture, challenging problems, and innovative technologies. Having the opportunity to work at such an influential company alongside some of the sharpest minds in the industry has been my biggest motivation.

After an intense interview process requiring thorough preparation, I am thrilled to now call myself a Googler. I look forward to continually challenging myself on impactful projects and expanding my skills while learning from my talented colleagues. I’m excited to see what the future holds in this next chapter of my career.

Thank you for taking the time to read. Feel free to connect with me on LinkedIn if you require any assistance! I’m more than happy to help with your interview preparation or provide guidance for your career.

Follow me on LinkedIn: LinkedIn Profile

Similar interesting read
Read about my interview experience at Facebook
Read about my interview experience at Amazon

Also have a look at these amazing course from designGuru.
Course link

--

--

Rohit Verma
Rohit Verma

Written by Rohit Verma

Senior software engineer at Google | Ex Facebook | Ex Amazon | Mentor | connect at https://www.linkedin.com/in/rohive/

Responses (47)