Google | L4 | Banaglore [Accepted]
Summary
I successfully navigated multiple coding and behavioral rounds for an L4 Backend/FullStack role at Google in Bangalore, ultimately receiving an offer. My journey involved overcoming an initial setback from a previous Google interview and rigorous preparation in Data Structures and Algorithms.
Full Experience
I was approached by a Google recruiter through LinkedIn in late December for a Backend or FullStack L4 role. After an initial conversation, my screening round was scheduled for late January. During the screening, I tackled a problem that was a variation of Merge K Sorted Lists, focusing on merging n arrays efficiently. I successfully came up with an approach, implemented it, and discussed its complexity, leading to a 'Hire/Strong Hire' verdict.
The recruiter's positive feedback gave me two months to prepare for the onsite interviews, which I scheduled for March 2022.
My onsite rounds were structured as follows:
- Round 1 (Googleyness): This was a behavioral round where I answered questions about my past experiences and hypothetical situations. I received a 'Hire/Strong Hire'.
- Round 2 (Coding): I solved a tree-based problem involving in-order traversal, initially using extra space, and then optimized it for constant space. I completed this quickly, and the interviewer seemed happy with my solution.
- Round 3 (Coding): This round involved a Tree + DP problem. I started with a brute-force approach and implemented it, but I struggled with the follow-up question and needed a hint. Although I solved the follow-up, I couldn't fully implement it. This resulted in a 'Lean/No Hire'.
- Round 4 (Coding): This wasn't a typical coding problem but a real-life scenario that boiled down to a matrix problem. I thought I solved it efficiently, but there was a better constant-time approach I missed. This also led to a 'Lean/No Hire'.
After these rounds, the recruiter informed me that two of my feedbacks were mediocre, and my packet would be considered for an L3 role instead of L4. I was offered two additional rounds to compensate, which I accepted, scheduling them a week later.
The additional rounds were:
- Round 5 (Coding): This was another real-life challenge that eventually turned into a graph-based problem. I used BFS to solve and implement it, and also tackled a follow-up. We discussed time/space complexity, test cases, and corner cases. When asked about reducing space complexity, I proposed a Union-Find based approach, which the interviewer appreciated. I received a 'Hire/Strong Hire'.
- Round 6 (Coding): This round involved an array problem stemming from a real-life challenge. I first implemented a brute-force solution, discussed its complexity, and then optimized it for better time complexity using Binary Search. The interviewer was satisfied with my approach and the implementation, giving me another 'Hire/Strong Hire'.
Three days later, the recruiter confirmed positive feedback and scheduled a Team Match call. I discussed the product and role with the Hiring Manager, and everything went smoothly. I am currently awaiting HC clearance for my L4 packet.
Interview Questions (1)
The problem's core was to merge n arrays into a single sorted array. The primary challenge was efficiently merging two arrays, then extending that logic to merge multiple arrays. I was asked to implement the solution and discuss its time and space complexity. This was a variation of the LeetCode problem 'Merge K Sorted Lists'.
Preparation Tips
My preparation strategy is detailed in a separate post. I focused heavily on Data Structures and Algorithms after failing a previous Google screening round in 2019. This dedication eventually paid off. My key takeaways included understanding problems thoroughly, starting with brute force before optimizing, brainstorming ideas, and writing clean, production-ready code. Preparation Strategy Link