Google | L3 | Banglore | Apr 2024 [Reject]
Summary
I interviewed at Google India for an L3 Software Engineering role in April 2024. Despite performing well in some rounds and optimizing solutions, I was ultimately rejected, primarily due to my performance in a system design round and an ad-hoc array coding problem.
Full Experience
My Google India interview experience for the L3 Software Engineering role began with a recruiter call around November 2023. After successfully passing a Team Fit Round, I requested and was granted one month for preparation. The interview process consisted of four coding rounds (one telephonic, three onsite) and a dedicated Googliness round.
Telephonic Round 1:
This round primarily focused on my past experiences, current role, and the projects I had been working on. The recruiter aimed to assess how closely my profile aligned with the available positions.
Coding Round 2:
I was presented with two medium-hard problems involving arrays and a sliding window with hash-maps. The second problem was a follow-up to the first and required the use of a linked list. We also delved into a discussion on the internal working of hash-maps. Overall, this round went well.
Coding Round 3:
This round involved a modified version of a Rate Limiting Problem, which was a system design challenge. I had to use three hash-maps in my solution. While the round generally went well, I missed a crucial aspect related to handling infinite input streams/requests for asynchronous API calls. Additionally, we had a 15-minute discussion on the testing of APIs. I later learned that this round was a significant factor in my rejection.
Coding Round 4:
I faced a hard, ad-hoc type problem on arrays. The interviewer was specifically looking for an O(N) solution. I initially proposed an O(N^2) solution and, after receiving hints, was able to optimize it to O(NlogN). Following a long discussion, I finally managed to arrive at an O(N) solution, though I only had time to write pseudocode. This round also contributed to my rejection.
Coding Round 5:
A medium-difficulty, sorting-based counting problem was asked where I needed to implement three APIs: insert, remove, and getMin. I successfully optimized the time complexity for all APIs from O(logN) to O(1) by utilizing extra space, specifically employing Bucket sort and an LRU cache. This was my strongest round.
Googliness and Leadership Round:
This round consisted of behavioral and leadership questions. I was asked about my approach to handling an ML-based project with no hard deadline, potential changes to the current culture of my organization, and various situation-type questions. This round went well.
Result:
I was informed that my interview feedback was negative and was advised to reapply after one year, which I found somewhat strange to believe. I subsequently found out that my rejection was primarily due to my performance in rounds 3 and 4.
Interview Questions (6)
Discussed the internal mechanisms and working principles of a hash-map data structure.
Design a modified version of a rate-limiting system. The problem specifically required the use of three hash-maps in the solution. I needed to consider how to handle infinite input streams or asynchronous API requests effectively.
Implement three APIs: insert, remove, and getMin. This was described as a medium-difficulty, sorting-based counting problem.
Discuss my strategy and approach for managing an ML-based project when there is no strict hard deadline.
Provide insights and suggest possible changes or improvements to the current culture within my organization.
Addressed various hypothetical workplace situations, demonstrating my problem-solving and interpersonal skills.
Preparation Tips
I took about one month for preparation after the initial recruiter call, focusing on the various rounds.