Google | L5 | India | Dec-2021 | Offer

google logo
google
SDE IIIindia12 yearsOffer
December 8, 20212 reads

Summary

I interviewed for an L5 position at Google India in December 2021 and received an offer. The interview process involved 8 rounds, including follow-ups, and emphasized speed, logical problem-solving, and managing ambiguity, even when facing initial setbacks like a no-hire for a syntax error.

Full Experience

I approached the Google L5 interview process with 12 years of experience, coming from a FAANG organization. My journey comprised 8 rounds, including two follow-up coding rounds.

Telephonic Round

This round featured a graph problem, which was a variation of the Course Schedule problem. I completed it within the given time, including a detailed discussion on time complexity, and received positive feedback.

Round 1 (Coding)

The first coding round involved a problem based on streams, where data arrived as strings, and I had to implement mathematical functions based on certain conditions. It was a medium-difficulty question, not found on LeetCode. I solved it in time but made a minor syntactical mistake. Surprisingly, this led to a 'no-hire' feedback, with the interviewer citing a 'struggle in fundamentals,' which felt harsh given the minor nature of the error. The interviewer was also late and seemed unprepared for the round, even asking me which round it was. Sometimes, bad luck can significantly impact the outcome.

Round 2 (Coding)

This round presented a modification of the Parallel Courses problem. I initially considered DFS and Union-Find but quickly solved it using Topological Sort. I haven't found any other solution for it to date. With time remaining, we delved into a detailed discussion of the problem's time complexity and general time complexity for Topological Sort. Despite the interviewer seeming very positive, I received a 'leaning hire' feedback, citing an 'innovative but complex algorithm' as the reason, which again, came as a surprise.

Round 3 (Coding)

The third coding round was a design question involving signed and unsigned integers, with a crucial focus on handling corner cases related to integer overflow. I completed the question in time, discussing correct complexities, and this round resulted in a 'hire' call.

Round 4 (Design)

For the design round, I was given a vague one-liner statement and was expected to generate all the requirements myself. The problem was a subset of designing a system like S3, left open-ended to evaluate my ability to delve into details. We had extensive discussions, covering every layer of the solution, including disaster recovery, availability, and consistency. This was probably my best round, with the interviewer appreciating my detailed coverage multiple times, resulting in a 'hire'.

Round 5 (G&L - Googleyness & Leadership)

Beyond standard behavioral questions, this round involved a deep dive into my past work. I effectively answered cross-questioning on projects I had completed, securing a 'hire'.

Team matching was completed before the Hiring Committee (HC), and I was matched with two teams. However, due to one negative feedback from a prior round, the HC requested two additional coding rounds.

Follow-up Round 1 (Coding)

  • I was asked to describe an interesting technical work I had done recently, which led to a detailed discussion for about 15 minutes.
  • Then, a design question around randomly arriving TCP packets was posed. I was informed that it couldn't be fully completed in the allocated time, but the core logic was essential.
  • A multi-threading discussion around this core logic followed.

Overall, the interviewer was impressed. I presented three different approaches to solve the problem and received a 'hire'.

Follow-up Round 2 (Coding)

  • I was asked to explain a technically challenging problem I had solved in my career, which was discussed in detail.
  • Following that, a simple counting problem was given, and we delved into the time and space complexity of Java collections. The problem was vague, and the interviewer was looking for an understanding of space-time tradeoffs. I provided the solution, and we moved on.
  • Finally, a lengthy backtracking problem, which was on LeetCode but one I hadn't encountered before, was given. The interviewer noted that there wasn't enough time to complete it but wanted to see the core logic. I brought the problem to a logical end where the interviewer was satisfied, and we proceeded to discuss a multi-threading implementation of the solution.

The discussion in this round felt vague, and the context frequently changed. Despite struggling a bit initially, I kept the conversation alive, which helped me immensely. I received positive feedback that made me hopeful for a 'hire', and indeed, it came through.

After re-doing team matching, I ultimately received a 'hire' from the HC for an L5 position. The recruiter was very friendly and shared individual round feedbacks, which helped me learn from my mistakes.

Interview Questions (6)

Q1
Stream Processing with Mathematical Functions
Data Structures & AlgorithmsMedium

A problem involving data coming in the form of strings in streams, where the task was to implement specific mathematical functions based on certain conditions derived from the stream data. The question was of medium difficulty and not present on LeetCode.

Q2
Design with Signed/Unsigned Integers and Overflow
Data Structures & AlgorithmsMedium

A design-based coding question focused on handling signed and unsigned integers, with a critical emphasis on managing corner cases related to integer overflow. It was a medium-difficulty problem not present on LeetCode.

Q3
Design a System Similar to S3
System Design

Given a one-liner vague statement, I was expected to generate all requirements and design a system that was a subset of a larger system like S3. The problem was open-ended to evaluate the depth of detail I could provide, covering aspects like disaster recovery, availability, and consistency.

Q4
Describe Interesting Technical Work
Behavioral

Tell me about an interesting technical work you have done recently. This involved a detailed discussion for about 15 minutes.

Q5
Design for Random TCP Packet Processing
System Design

A design question centered around randomly arriving TCP packets. I was told that a complete solution wasn't expected due to time constraints, but the core logic was required. This was followed by a multi-threading discussion around the proposed core logic.

Q6
Describe a Technically Challenging Problem
Behavioral

Tell me about a technically challenging problem you have solved in your career. This involved a detailed discussion of the problem.

Preparation Tips

My preparation involved solving 551 LeetCode problems (60 Hard, 126 Easy, 365 Medium) over a year, focusing heavily on concepts rather than just quantity. This approach helped me tackle questions I hadn't explicitly seen before. Based on my learnings and others' experiences, prioritizing quality over quantity in practice proved beneficial.

Key takeaways from my interview experience that shaped my preparation and approach include:

  • Always be ready to generate the problem statement from a vague one-liner; all 8 rounds expected this.
  • Google values speed in problem-solving; I received positive marks for speed in all but one round.
  • Solutions should be elegant and not overly complex, as complexity can negatively impact feedback in the Hiring Committee.
  • Always be prepared to discuss time complexities thoroughly.
  • Avoid taking hints; interviewers note every hint given, which can lower your overall rating.
  • Use meaningful variable names, as this was positively noted in my feedback.
  • Self-test your code before the interviewer points out errors. Even a 10-second pause after coding was noted as a minor concern in my feedback.
  • Everything you say is generally noted down and appears in feedback.
  • Do not let silence creep in, even if you're struggling to find a solution. Silence can negatively impact your rating.
  • Speak up your thoughts instead of jumping to an answer quickly, but avoid silence.
  • Finally, I realized that luck is as important as preparation in these processes.
Discussion (0)

Share your thoughts and ask questions

Join the Discussion

Sign in with Google to share your thoughts and ask questions

No comments yet

Be the first to share your thoughts and start the discussion!