- Published on
Google | SWE-3/L4 | Hyderabad | Aug 2024 | [Offer]
- Author
- Shared Anonymously
Experience: 4 years
Position: L4 (Software Engineer-3)
Location: Hyderabad, India
Offer Date: August, 2024
The Unexpected Opportunity
In January of this year, I applied for a position at Google through their careers page without much expectation. Given that I was working in a service-based company and wasn’t even receiving interview calls from average product-based companies, I didn’t anticipate much. But then, in the last week of February, I received an email from a Google recruiter expressing interest in my profile. For a moment, I thought it might be spam. However, after confirming its authenticity, I promptly replied, expressing my interest.
The First Waiting Game
After my reply, I was left in the dark. I didn’t hear back from the recruiter, and even my attempt to connect with them via LinkedIn went unanswered. Just when I was beginning to lose hope, the recruiter finally called in the last week of March, approximately four weeks later.
The Initial Screening
The recruiter asked about my current work experience and quickly moved on to the crucial question: "How good are you with Data Structures and Algorithms? How would you rate yourself out of 10, and why?" I rated myself 8 out of 10, having solved around 650+ LeetCode questions.
She then explained the interview process: a phone screening round, followed by four onsite rounds if I cleared the initial screen—three coding rounds and one “Googleyness” round. She advised me to solve 150-200 medium and hard LeetCode problems in preparation. We scheduled the phone screening for April 28th, which was later rescheduled to May 14th due to personal reasons.
The First Phone Screen(14 May 2024)
The first phone screen was nerve-wracking. After a brief introduction, the interviewer shared a problem in a Google Doc. The problem was one and a half pages long, and I spent about 15 minutes trying to fully understand it. At that point, I started to feel that it might be over for me. But as I continued reading and confirmed some examples I created, I realized it was a topological sorting problem.
I explained my approach, and the interviewer seemed satisfied. I then coded the solution, including the time and space complexity, within 45 minutes. There were no follow-up questions.
Moving to Onsite
A week later, after sending a feedback request, the recruiter called to inform me that I had cleared the phone screening round and they wanted to schedule my onsite interviews. I requested some feedback, and she advised me to start with a brute force approach in future interviews before diving into the optimal solution. We agreed to schedule the onsite interviews after I felt confident, which turned out to be in late June.
Onsite Interviews: Round 1/Coding(July 1st week)
The first onsite coding round took place in the first week of July. After a brief introduction, the interviewer shared a problem in Google’s editor, which was easier to code in than Google Docs. The problem seemed like it could be solved using DFS. After asking some clarifying questions, I explained my approach, which the interviewer accepted. I then coded the solution and handled a follow-up question that involved using a PriorityQueue with DFS. The interviewer was satisfied with my approach.
Onsite Interviews: Round 2/Coding(July 1st week)
The second coding round started without any introductions. The interviewer shared the problem directly, and I quickly recognized it as a sliding window problem. I first presented a brute force approach and then explained how it could be optimized using a sliding window. After coding the solution and handling a straightforward follow-up question, I finished within 35 minutes, leaving some time for additional discussion.
Onsite Interviews: Round 3/Coding(July 1st week)
The third coding round also began without any introductions. The problem was a medium-hard level tree DP question. After thinking aloud for a bit, I arrived at the correct solution and coded it. However, the interviewer wanted the code to be more readable, suggesting I avoid using an extra function, which I struggled with. Despite this, I successfully tackled the follow-up question, which involved modifying a binary tree into an n-ary tree.
Coding Round Feedbacks
After the third coding round, the recruiter informed me that all my coding rounds had gone well and that I just needed to perform well in the Googleyness round. While she couldn’t reveal my exact ratings, she hinted that I had likely received one “Strong Hire” and two “Hire” ratings.
Onsite Interviews: Round 4/Googlyeness and Leadership(July 2nd week)
For the Googleyness round, I prepared 10-15 scenarios from my past experiences in the STAR format. The interviewer asked four questions—two hypothetical and two based on my past experiences. The round went smoothly, and we finished within 35 minutes.
Onsite Rounds Feedback
After a week, the recruiter called with positive feedback from all interviewers and informed me that I was ready for team matching. The first team match call happened the very next day, and within a week, I was matched with two teams.
The Team Match Process
During the team matching calls, one team casually asked about my projects and explained theirs, while the other team’s manager conducted a deep dive into my projects, asking a lot of cross-questions. From this experience, I’d recommend thoroughly preparing to discuss your past projects in detail.
The Final Stretch: HC
After the team matching round, I was a bit worried—not about getting rejected, but about the possibility of being down-leveled to L3. I had read stories about this happening to others, so it was on my mind. But, to my relief, I found out the next week that the hiring committee (HC) review was already done before my team matching round, and they decided to move forward with L4.
Recruiter told me that since I didn’t have any borderline feedback, the HC process was quick and smooth, which was a huge relief.
Final Verdict: Selected (1st week of Aug 2024)
It took about two more weeks for my offer packet to be prepared and approved. Finally, after all the preparation and waiting, I received my official Google offer. The whole journey, from applying to getting the offer, was challenging but incredibly rewarding.
Compensation: https://leetcode.com/discuss/compensation/5609329/Google-or-SWE3-L4-or-Hyderabad
Preparation Strategy
Before my first interview call, I had already solved around 650 LeetCode questions. By the time I finished my final round, that number had increased to 850. I used LeetCode Premium and focused on solving about 70% medium and 30% hard questions, primarily using the company and frequency tabs to guide my practice.
During my preparation, I also created a Google Doc where I stored code snippets and noted the time complexities of important concepts. I used ChatGPT to help me find the simplest and most efficient code for common algorithms like DFS, topological sorting, and sliding window, etc. I saved these snippets in my document for easy revision.
While I ended up solving a lot of questions, I don’t think it’s necessary to solve 900 questions. The key is to focus on solving a variety of questions that cover different patterns.
I recommend focusing more on medium-level questions, as the difficulty of the problems I encountered in my interviews was similar to the 3rd question in most LeetCode contests.
All the best for your preparation!!!