Google | L4 | Interview Experience
Summary
I interviewed for an L4 position at Google, completing a phone screening and four onsite rounds over a few months. I felt I performed strongly in several technical and behavioral rounds and am currently awaiting the final outcome.
Full Experience
I have 4.2 years of experience in a product-based company. I received a message on LinkedIn from a Google recruiter, and as I was actively looking for opportunities, I scheduled my phone screening round for the following week.
Nov 1st week: Phone Screening Round
I don't remember the exact question, but it was an array question similar to this LeetCode Discuss post. I was able to solve the question with an optimal solution, and later received positive feedback from HR.
After this, there was a break for a soft team alignment. For those unfamiliar, this is a process where my candidature was circulated throughout Google to see if any Hiring Manager was interested in my profile. This is a one-way process; at least one HM needs to show interest for the onsite rounds to be scheduled. After one and a half months, I received a mail to schedule the onsite rounds. Trust me, there were times I almost gave up on Google! A week after receiving the mail, I scheduled my onsite rounds.
Dec End: Round 1
The question was: You are given an input string, for example add(5, mul(2, pow(5,2))), and you have to evaluate it. This was just a plain string with operators such as add (addition), mul (multiplication), pow (power), sub (subtraction), and div (division). I was able to come up with an approach, but could only code half of the solution due to time constraints. The feedback was not great for this round.
Dec end: Round 2
The question involved creating two functions:
InsertRange(int start, int end): This function takes two integer arguments,startandend, to create intervals wherestartis inclusive andendis exclusive.Query(int point): This function takes an integer as input and returns a boolean, indicating if the particular point is present in any of the created intervals.
Example:
- Insert:
[2, 3),[2, 5),[9, 13). The final merged intervals should be{[2,5), [9, 13)}. - Query:
0should returnfalse,2should returntrue,10should returntrue.
I was able to solve and code the solution within time, including follow-up questions. I'm guessing I got a Strong Hire for this one.
Jan start 2025: G&L round
This round consisted of general behavioral questions. I'm guessing I received a Hire or Strong Hire for this round.
Jan start 2025: Round 3 (Rescheduled)
This was a Dynamic Programming question, specifically finding the length of the longest increasing subsequence but with a tweak. I was able to solve and code the solution within time and also handled the follow-up question. I'm guessing a Strong Hire for this as well.
I hope this post helps others. Thanks and All the best!
Interview Questions (2)
Given an input string, for example add(5, mul(2, pow(5,2))), you have to evaluate the string. This is just a plain string. The available operators are:
add: additionmul: multiplicationpow: powersub: subtractiondiv: division
Create two functions:
InsertRange(int start, int end): This function takes two integer arguments,startandend. When called, it should create or merge intervals such thatstartis inclusive andendis exclusive.Query(int point): This function takes an integer as input and returns a boolean, indicating whether the given point is present within any of the currently stored intervals.
Example:
Insert operations:
InsertRange(2, 3)InsertRange(2, 5)InsertRange(9, 13)
The final merged intervals should be {[2,5), [9, 13)}.
Query operations:
Query(0)should returnfalseQuery(2)should returntrueQuery(10)should returntrue