Google | L5 | Bangalore | Selected | Interview Experience
Summary
I recently interviewed for an L5 Software Engineer role at Google and successfully received an offer. Despite facing challenging rounds, including two with 'Lean Hire' verdicts, I managed to convince the Hiring Committee and secure the position.
Full Experience
Hi everyone! I recently interviewed for an L5 Software Engineer role at Google and wanted to share my experience. My professional background includes 5.5 years of experience, primarily as an entrepreneur, having graduated from a Tier 1 college.
Coding 1: I spent almost 30 minutes understanding the problem and clarifying my approach with the interviewer. This initial time investment helped immensely, as I took another 10 minutes to code and achieved a perfectly working solution covering all edge cases on my first attempt. My self-verdict for this round was 'Hire'.
Coding 2: I had a rather strange experience during this interview. The question itself was an easy one, but the interviewer seemed to want me to solve it exceptionally quickly. Whenever I paused to think, they would start giving hints and urging me to proceed. I was able to solve the question and its follow-ups, but the feedback noted that I only solved the problem after receiving hints. My self-verdict was 'Lean Hire'.
System Design: I started this discussion well and was able to address the functional requirements within 20 minutes. Although I asked the interviewer on which aspects I should dive deeper, I didn't get any clear signals. Consequently, I ended up making many self-decisions and hopped between topics a bit, which wasted some time until I finally concluded my solution. My self-verdict was 'Lean Hire'.
GnL (Googliness & Leadership): This round went really well. I followed the STAR format diligently, answering every question with concrete examples. I tried to keep my answers diplomatic yet actionable. The interviewer appeared very engaged and interested in my stories, ideas, and thoughts. My self-verdict was 'Strong Hire'.
Team Match Rounds: I had more or less similar experiences across all three team match rounds. These discussions primarily revolved around my background, what the teams do, and what they expect from a candidate. An important tip I learned is to try and link any of your past experiences with the team's future projects. In my opinion, people prefer candidates who have already solved similar problems, not just those who can solve them.
Additional System Design Round: I started this interview very well and managed to reach an ideal solution within 30 minutes. Seeing this, the interviewer modified the problem statement and asked me to redesign it. We engaged in a great discussion, arguing various approaches, and finally, they seemed convinced with my approach. My self-verdict was 'Strong Hire'.
Overall, I was able to convince the Hiring Committee with my packet, despite having two 'Lean Hire' verdicts. I received the offer letter two days ago! 🎉
Interview Questions (4)
You are given a dictionary, and a stream of words. The words in the stream are of varying lengths. Encode the words in the stream based on their frequencies using Huffman Coding algorithm. The encoded stream should be as short as possible. The dictionary size is fixed, and the words in the stream are always from the dictionary.
Given an organizational structure as a list of (employee, manager) pairs, where manager is the direct manager of employee. Each employee has a unique ID (integer). There's one root manager (has no manager). Implement a function updateManager(employeeId, newManagerId) that updates the manager of employeeId to newManagerId and returns true if the update is successful, false otherwise. Constraints: An employee cannot become their own manager. An employee cannot become a manager of their direct or indirect report. The organizational structure must remain a tree (no cycles). What's the time and space complexity?
Design a distributed cache optimized for a given task (details of the task were presented on screen).
Design a TikTok-style news feed similar to Google News.
Preparation Tips
For preparation, an important tip is to try and link any of your past experiences with the team's future projects. People don't prefer candidates who can merely solve problems; rather, they prefer those who have already solved such problems in their past work experience.