Interview Experience: L5, Google, Bangalore
Hi! I’ll be keeping this anonymous, but I recently fulfilled a long-time goal by joining the Google Cloud Databases team as a software engineer. Like many in tech, I’d always wanted to work at Google, so this role is truly a dream come true. Before Google, I spent seven years at Amazon, where I learned a lot but also encountered a challenging work culture. When I was put on a PIP, it felt like the right time to look for opportunities with a better environment and comparable compensation. I went through a few interview processes and secured offers from Uber and Microsoft. But Google stood out as the place where I could make a meaningful impact while working with some of the brightest minds in tech. Here’s my detailed interview journey, from start to finish.
Application and Initial Steps
I applied for the role through a recruiter in March 2024. The initial conversations were smooth, and after a introductory calls, I received the invitation to begin the interview process.
[Sponsored] Kickstart your interview preparation with Nerd Design Lab!
Connect with expert recruiters and engineers from top tech companies who are here to help you succeed. Nerd Design Lab offers high-quality, affordable services, including:
Resume Review - Stand out with a resume that showcases your strengths.
Mock Interviews - Practice with professionals to boost your confidence.
Career Guidance - Receive personalized advice to reach your goals.
Take the next step in your career journey with Nerd Design Lab—designed for ambitious candidates ready to succeed!
Round 1: Data Structures and Algorithms
Focus: Post-order Tree Traversal, Topological Sorting
The first round kicked off with a DSA problem centered around trees. I was presented with a lengthy question in the code editor and took time to read it carefully. I asked several clarifying questions, which helped me gain a better understanding of the task.
Once I understood the problem, I proposed using a tree with post-order traversal. The interviewer requested that I explain my approach through an example before coding. I created a TreeNode
class and organized my solution into modular components. I eventually completed the implementation, though I faced a bit of a time crunch.
Reflecting on it later, I realized a more efficient solution could have been achieved with topological sorting. Knowing this, I was a bit unsure about the outcome of this round.
Round 2: Data Structures and Algorithms
Focus: Tree Traversals
The second round came as a surprise with an extended 1-hour slot. The interviewer presented a problem spanning 4–5 pages with a corresponding diagram, which required managing a lot of information. The problem focused on n-children trees, a topic that tested my understanding of intricate tree structures.
With the help of clarifying questions, I spent around 20-25 minutes understanding the problem’s full scope. This problem was challenging due to its length and complexity, but I managed to complete the code. By the end, I felt both exhausted and confident that I had done well.
Round 3: Data Structures and Algorithms
Focus: Heaps, Recursion, Code Modularity
For this round, the interviewer presented a modified medium-level LeetCode problem, focusing on trees and recursion. I solved it quickly and coded a solution, including time and space complexity.
The interviewer then added follow-ups:
Follow-up 1: With a small modification, they asked how I would adapt my code. I leveraged the Strategy Design Pattern to make it modular.
Follow-up 2: This was a trickier problem extension, requiring an optimal approach. My earlier modifications helped me quickly adapt the code.
Follow-up 3: A question around productionizing the solution. I shared a few scalable approaches, discussing how to ensure robustness in a real-world environment.
This round wrapped up well, and I felt positive about my performance.
Round 4: Additional Data Structures and Algorithms Round
Focus: Strings, Sorting, Binary Search, Trie
Due to mixed feedback the recruiter suggested an extra DSA round. This time, the problem required multiple DSA concepts, including sorting, binary search, and trie structures, as well as handling various corner cases.
After formulating an algorithm and discussing it with the interviewer, I implemented the solution with modularized code and tested edge cases. The follow-up questions required:
Follow-up 1: Modification using a Trie to handle a new input.
Follow-up 2: Discussing scalability with a large dataset. I explained the option of sharding the Trie and considered a key-value store approach.
The round went smoothly, with the interviewer indicating satisfaction with my performance.
Round 5: System Design
Focus: System Design, Scaling Backend Services
This round involved designing a Google product. I started by outlining functional and non-functional requirements, which I validated with the interviewer. We had a deep dive into specific design approaches, discussing the pros and cons of various options. This interview felt more like a collaborative conversation, and I appreciated the interactive nature. I was uncertain about the final outcome, but overall it was a rewarding experience.
Round 6: Googlyness and Behavioral Interview
Focus: Cultural Fit, Problem-solving Approach
In this round, we discussed my previous roles, including my experience at META, and explored the reasons behind my transition. The interviewer posed situational questions, and I shared my approach to tackling similar challenges in my past roles. This round felt more like a friendly conversation, with the interviewer offering support and guidance.
The Wait and Final Offer
After the interviews, the waiting period for feedback was long, as the hiring committee took time to reach a decision. The recruiter kept me updated, and after three weeks, I received the call—Google had extended an offer! The initial terms were in line with my expectations, so I accepted it without much negotiation.
Joining Google and Team Matching
The team-matching process involved several meetings with different managers. Eventually, I joined the Google Cloud Databases team, which aligned well with my interests. I officially joined on July 2024, marking the beginning of an exciting chapter.
Key Takeaways
Strong communication is a key success.
Strong understanding of data structures is essential; practice hard problems; tree-based questions were common.
Google emphasizes code quality and modularity over speed.
Follow-up questions on scalability and productionization are vital.
I’m thrilled to have achieved this milestone, and I look forward to the challenges ahead at Google, surrounded by a brilliant team.