Recently went through the L4 loop for Google. I have 2.5 YOE. Google has been a dream company for me, as is for anyone who is interested in programming. Really wanted to make it but due to clashes with events in personal life couldn't prepare well and hence lack of confidence. Will try again after 12 months cooldown with better preparedness. Here's my self assesment:
Mock Interview: Coding - Bombed/Clueless
Round 1(Online): Coding - H
Round 2(Online): Googliness - SH
Round 3(Onsite): Coding - LH
Round 4(Onsite): Coding - NH/LNH
I was approached by the recruiter in late Novemeber 2025. The mail went to gmail spam(ironic) and I didn't see it due to festive season. The recruiter then called me and asked some questions on the same call itself after which she decided I should apply to a job opportunity after the call. I asked for a fortnight for preparation. Never had done graph/DP problems in life hence it was tough because Google usually has these topics as their favourites. Luckily the interview schedule gave me a month.
A few days later the Recruiter asked if I needed help with interviews and they could setup a mock interview with a Googler. I jumped at the opportunity and said yes.
Mock Interview (Early December): Interviewer explained how a coding interview goes. Meeting Rooms 3 problem. Never in my life ever had thought a problem would need 2 Priority Queues. Clueless through the whole interview. Interviewer tried a lot to help but dumb me. Gave me new motivation, bought premium and ground my way through stuff, ~200 questions in the days left.
Round 1 Coding (Early January): Interviewer was a very senior person and asked data stream style question where we make a system and someone else instantiates and calls the functions. Straightup gave the optimized approach as it's the most intuitive. Made a mistake which I later fixed. Made sure to keep naming and syntax clean as I felt the real test was not the question itself but my strategy and coding style. Had a followup with which it went into a System Design style discussion. Gave some approaches that I could implement using Spring Boot but not with pure Java as I had prior experience solving the same issue with it. Interviewer was very engaged throughout the process and helped put my expansive phrases into concise terms as expected of a senior person. Overall a very positive experience.
Round 2 Googliness (Mid January): Interviewer was again a very senior person and asked generic questions that are expected of a behavioural/leadership round. The interest was real from the interviewer. He had chained the questions in such a way that I didn't have to repeat anything during the whole thing. Had 15 mins left at the end where I asked 5-6 questions which he was happy to take. Again a great experience with thoughtfulness put into the whole interview.
Recruiter contacted and first asked my thoughts on the interviews. Said the interviewers felt the same, the results are good and moving to onsites. Wait of 25 days. Moved with a different recruiter for the onsites. Got call from the new recruiter. He wanted to schedule in Late Feb/Early March. Couldn't agree as I had personal events scheduled. I had to give later dates(Mid-End march) which again was a bad decision. Had no time to prepare.
Onsites: Flight to and fro, lodgings were provided by Google. Overall positive on the arrangements side. Intervews were scheduled back to back without rest in morning. Reached the city previous day, had rest.
Interview Day: Woke up early in the morning and reached 1 hour early due to buffer management owing to reviews of horrible traffic in the city. The first interviwer had not come. Mailed the scheduling team and that's how I got to the second interview atleast. After this the scheduling team asked for my itinerary and scheduled the missed interview after lunch with a different interviewer. Interview completed and left in a hurry to catch my flight. Made it roughly in time to the flight :)
Round 3 Coding (Mid March): Interviewer arrived, senior person with maybe around 10-12 YOE (guess). Asked for my intro, then asked an OOP question. I gave an answer that was correct. He went deeper into the details but he didn't explicitly state what he wanted to ask. I had to give some fluff to his vague question.
He then gave an ultra ultra vague problem which I first made into a Tree problem and then applied DFS on it. Had very bad naming scheme due to the question never having been provided any terms/phrases to begin with, was really a 9 words question. He asked some questions on scaling to which I could come up with an answer after he gave a concrete example of what kind of info he wanted to know from me.
Then he asked me to optimize my algorithm. Again very vague to which I explained how the algorithm cannot be optimized further for a single query. He didn't mention having multiple queries throughout the interview due to which I never gave the path compression answer which I had in mind in case he asked.
I tried everything acording to how he tried to direct me. Giving ways as to how one can compress a tree into an array if needed to make it into a contiguous storage instead of spread as in a graph. He didn't get satisfied I guess. I asked my questions which he answered fully and I was satisfied with that.
Overall experience is that I didn't know "Being Comfortable with vagueness" in Google ethos could mean this much vagueness :(
Lunch: It was great. Went with the scheduling team. Had many menus to select from. Continental, Asian, Indian etc. They were starting to offer soda mocktails that day(new thing for Googlers too). Great discussion at the table and got to know the lifestyle of the XWF scheduling team.
Round 4 Coding (Mid March): Interviewer came 5-10 mins late. Not his fault, he told me this was a sudden call hence he hadn't prepared much. Asked for my intro and went to the question. I told him the brute approach which he said was correct and asked me to write down along with the TC and SC which I did. He then gave a hint(didn't need it) to me and asked to optimize. I explained the optimized approach.
I hadn't practiced coding for a while due to personal schedules and hence I did mention at the end that due to the code of upperbound and lowerbound being similar I am a bit skeptic of correct implementation of these. In C++ there's the builtin functions for these but in Java we have to implement those two functions and I might write one for the other in confusion. He said we'll see that later.
The language differences again came to trouble because the interviewer asked why I had to do character by character comparisons of a string and why a greater than operator will not work between the two strings and hence result in performance improvements. I did as he asked after I said I am not sure this is the correct way as I had never done that way. I intuitively knew we can't do that in Java but forgot at that moment that can't be done due to them being objects in Java and object ID's would be compared and compiler will throw error. compareTo() method is what I usually use in my day to day life. Again I forgot that in the interview. This function takes same TC as the character by character approach.
I wrote the core function and then the upper and lower bound functions. Did a dry run where they worked but I was not sure they would work with different examples. The interviewer asked the same and I said I am not sure and I would have to check, to which he said we don't have that much time. I wrote the TC and SC. Which I later found wrong as I had thought. The algorithm was correct though.
In the end the followup was there to which I gave a Trie based approach and he asked me the details of it which I gave. He was satisfied with that. Wrote the approach and TC, SC.
The time ran out. The interviewer said since we had such less time he'll check my answers and assess them later to give results. I guess there's a reason interviewers are matched with interviewees very finely and what a sudden assignment can do to the process.
Overall exprience was a rushed interview where I was not confident about my decisions and misled myself in some things. Would have helped if I had some practice.
Feedback: Got my feedback the next day.
Round 3: Right answer to the OOP problem. Didn't answer the follow up to the OOP problem as per the interviewer's expectations. Had good algorithm design and implementation. Didn't answer the interviewer with optimized approach for the algorithm question despite his repeated hints. Couldn't optimize and debug properly despite hints.
Round 4: Chose good approach and algorithm and implementation. Had issues with recruiter's questions on the implementation details. Couldn't debug the code properly.
Overall good with code and algorithms but not with debugging and followups.
My Thoughts: I would say it was a good experience for someone like me who hadn't taken Leetcode seriously in life. Some important life events came in between preparation too. I am very satisfied with what I got, especially with how the mock interview had gone. I could have been more confident and better prepared. There's always next time :P
Please comment on what you think is there that I could do based on my preparation history and experience.