Google India L4 Interview Experience

google logo
google
SDE IIIndia3.5 years
April 9, 20256 reads

Summary

I applied to Google India for an L4 role and after a lengthy interview process involving a screening, three onsite rounds, and a Googlyness round, my application advanced to the team matching phase. Despite positive feedback on most rounds, the process was described as tiresome due to multiple reschedules.

Full Experience

Current Org: Oracle India Current Position: IC3 a.k.a. SDE2 Current Exp: 3.5 years

It all started when I applied to Google on October 2024 directly on their career page without any referral.

Surprisingly, I got a call from the recruiter a couple of days later for a screening round. Since I was not prepared, I asked for four weeks. My interview was scheduled around mid-November 2024.

Screening (Mid-November 2024)

This interview was the: You are given a stream of messages from a chat group in the form

[["Username1","message"],["Username2","message"],...] and a value K. 

You need to find the top K users in the group based on the number of messages.

Approach: Priority Queue

I was able to solve it in 20 minutes with clean and runnable code. No follow up questions.

After the interview, I did not hear from the recruiter for nearly two weeks. I got a call in the first week of December. She informed me that I had qualified for the onsite rounds and she would be scheduling it in December itself. I sent her the dates which were around the end of the month, but did not get any reply from her side for a couple of weeks again. In the last week of December, she called and informed me that interviewers were not available and my interview would happen in the middle of January.

Round 1 (Mid-January 2025)

At the beginning, the interviewer told me he would ask more than one question. He seemed grumpy.

The first question was like this: You are given a string which will only have ‘L’ and ‘R’ pieces and black space ‘_’. L pieces will move only to the left, R to the right. Pieces cannot jump over one another. For a given initial and final state, return true if we can reach to final state from initial, else return false.

Example:

Input: Initital: R__L, Final: _RL_
Output: True

It is same as Swap Adjacent in LR String.

Approach: Two pointers

It took me a lot of time to explain my approach to the interviewer. And he did not get time to ask the next question.

Round 2 (End January 2025)

It was a pretty easy round. The interviewer was very friendly.

In a 2D space, you are given N routers each having the same radius of R. The routers are initially in the OFF status. You select 1 router, it turns on and pings all the routers that are within its radius. You need to find the minimum time at which all the routers will turn ON.

Approach: BFS

He modified the question later with each router having its own radius and asked me to do minimal change to incorporate the change. Thankfully, I was following OOD to write the code.

Round 3 (End Feb 2025)

This was again a cakewalk. The question was to create a string replacement library. Given a map of string replacements, replace the value in the input string.

Example:

Map: {USER => admin, HOME => /%USER%/home}
Input: I am %USER% My home is %HOME%
Output: I am admin My home is /admin/home

Approach: Recursion, but need to cover cases to handle %'s actual usages.

He later modified the question to include something like a loop. We need to figure out how to detect and handle that.

Example:

Map: {USER => admin, HOME =>/%USER%/%PATH%/, PATH => %HOME%}

I suggested a logic very similar to DFS for detecting a cycle and if and when we get one, we can just throw an error.

Googlyness (Mid March 2025)

Standard Behavioural and situational questions from this.

Feedback

I got a call from the recruiter literally an hour after the Googlyness round.

  • 1st Onsite: Below Average (Still don’t know WTF happened there)
  • 2nd Onsite: Positive
  • 3rd Onsite: Positive
  • Googlyness: Positive

My application got moved on for team matching for L4 roles. Thankfully, I did not get bumped down to L3.

It has been more than six months. All the interviews apart from screening and the second onsite got rescheduled at least twice. This is a tiresome process. Google should really improve its hiring process.

At the time of posting this, I am still in the team matching phase. I went through two fitment calls, one I didn’t like, the other, the interviewer did not like me. If and when anything changes, I will update this post.

I only prepared for Google and in the meantime an Amazon offer fell into my lap. More of that is here and here.

Interview Questions (5)

Q1
Top K Users in Chat Group by Message Count
Data Structures & Algorithms

You are given a stream of messages from a chat group in the form [['Username1','message'],['Username2','message'],...] and a value K. You need to find the top K users in the group based on the number of messages.

Q2
Swap Adjacent in LR String
Data Structures & Algorithms

You are given a string which will only have ‘L’ and ‘R’ pieces and black space ‘_’. L pieces will move only to the left, R to the right. Pieces cannot jump over one another. For a given initial and final state, return true if we can reach to final state from initial, else return false. Example: Input: Initital: R__L, Final: RL Output: True It is same as Swap Adjacent in LR String.

Q3
Minimum Time to Turn On All Routers
Data Structures & Algorithms

In a 2D space, you are given N routers each having the same radius of R. The routers are initially in the OFF status. You select 1 router, it turns on and pings all the routers that are within its radius. You need to find the minimum time at which all the routers will turn ON. He modified the question later with each router having its own radius and asked me to do minimal change to incorporate the change. Thankfully, I was following OOD to write the code.

Q4
String Replacement Library with Cycle Detection
Data Structures & Algorithms

The question was to create a string replacement library. Given a map of string replacements, replace the value in the input string. Example: Map: {USER => admin, HOME => /%USER%/home} Input: I am %USER% My home is %HOME% Output: I am admin My home is /admin/home. He later modified the question to include something like a loop. We need to figure out how to detect and handle that. Example: Map: {USER => admin, HOME =>/%USER%/%PATH%/, PATH => %HOME%}. I suggested a logic very similar to DFS for detecting a cycle and if and when we get one, we can just throw an error.

Q5
Googlyness Behavioral Questions
Behavioral

Standard Behavioural and situational questions from this.

Preparation Tips

I only prepared for Google and in the meantime an Amazon offer fell into my lap. More of that is here and here. For the Googlyness round, I referred to standard behavioural and situational questions from this.

Discussion (0)

Share your thoughts and ask questions

Join the Discussion

Sign in with Google to share your thoughts and ask questions

No comments yet

Be the first to share your thoughts and start the discussion!