Google India | SWE L3 | Interview Experience.
Summary
I interviewed for a Software Engineer L3 role at Google India. Despite initial recruiter delays and a challenging "Googlyness" round, my technical interviews went well, and I received a "go ahead" on my profile.
Full Experience
I was initially contacted by a Google recruiter in early March regarding a Software Engineer L3 role in India. The recruiter rescheduled calls multiple times and was unresponsive to emails, which was quite frustrating. Eventually, in late April, the recruiter re-engaged and promptly scheduled a call. After discussing my background and compensation expectations, I was informed about the L3 role and the interview process. Feeling unprepared and lacking confidence, I requested a three-week preparation period before proceeding with the interviews.
Round - 0: Technical Screening
This round took place in mid-May. The problem was similar to the Maximal Square problem on LeetCode, but with an additional constraint. I first proposed a bruteforce approach and then, on my own, landed on a DP solution. After coding, the interviewer asked me to find a bug; I quickly identified an index-related issue and explained my corrected code. The interviewer seemed satisfied. I rated my performance 4.5/5.Following this, the recruiter ghosted me for about a month before scheduling the onsite interviews in June.
Onsite - 1: Technical Interview
The question in this round was related to finding the length of increasing subsequences, again with additional constraints that I cannot recall precisely. I immediately suggested a DP solution and was then prompted to optimize it further. After some thought, I proposed and coded a Hashmap-based approach. As a follow-up, the interviewer modified the subsequence constraints, which I was able to handle by making minor adjustments to my existing solution. The interviewer appeared satisfied. I rated this round 4.9/5.Onsite - 2: Technical Interview
The interviewer, a Principal SDE, introduced himself, and I spent about 10 minutes introducing myself. He described the problem verbally rather than providing a written prompt. The task involved an n * n grid, much like a mobile lock screen, and I needed to find the number of possible patterns under certain constraints. I struggled initially, feeling the pressure of the clock, and found myself contemplating a 3D DP approach, grappling with its states. The interviewer intervened, asking me to try solving it without DP first. While explaining my thought process, he posed many "why" questions. He then turned off his camera, citing network issues, which left me uncertain if I was on the right track. Eventually, I arrived at a backtracking approach. With only 8 minutes remaining, he asked me to code it quickly. I implemented the solution in a single pass. I wasn't entirely sure if my solution or code was correct, but I knew it could be optimized with memoization and bitmasking. The interviewer didn't allow a dry run and instead immediately asked about complexities before concluding the call. I later realized my code was correct and regretted not suggesting the optimizations. I rated this round 3/5.Onsite - 3: Technical Interview
The question involved finding the farthest distance with some constraints. I quickly proposed a multi-source BFS approach with an O(V + E) complexity. After explaining it in detail, the interviewer questioned my complexity analysis, suggesting it was O(V). I initially agreed, but she then corrected herself, confirming O(V + E) was correct. "It was at this moment I knew I f...d up." She then delved into many questions about complexities, asking about dense/sparse graphs and various input representations (list of edges, adjacency matrix/list). After carefully answering, I coded the solution. She then tweaked the problem as a follow-up, and I modified my code accordingly. Finally, she introduced directed edges with weights, for which I took some time and proposed Dijkstra's Algorithm, answering many "why" questions about my approach. She seemed to agree, though I wasn't entirely sure of her satisfaction. I couldn't code this part due to time constraints. When I asked her what she liked most about Google, she simply replied, "Food." I rated this round "idk/5."Googlyness Round
This round consisted of standard behavioral questions. However, the interviewer didn't seem satisfied with any of my answers. He probed deeply into the Software Development Life Cycle (SDLC), an area where I am not very proficient. I struggled to provide satisfactory answers and even admitted, "I don't know," to one of his questions. My personal rating: "I bombed it/5."The next day, the recruiter called to inform me, "Except Googlyness, other technical rounds went well, and we received a go ahead on your profile. Congrats!"
Interview Questions (5)
The question involved finding the length of increasing subsequences with some additional constraints. I was asked to optimize my initial DP solution. A follow-up modified the subsequence constraints, which also needed to be solved.
Given an n x n grid resembling a mobile lock screen, the task was to find how many unique patterns are possible with certain constraints. The problem required counting valid paths on the grid.
The initial problem was to find the farthest distance in a graph under specific constraints. A follow-up modified the problem to include directed edges with weights, requiring a different approach.
Standard behavioral questions were asked, with a deep dive into the Software Development Life Cycle (SDLC).
Preparation Tips
I wasn't initially prepared for the interviews, so I requested and utilized a three-week preparation period. Specific details of my preparation methods were not mentioned in the post.