Google | L4 | Reject
- Result
- Rejected
- Location
- India
- Posted
- 7 Nov 2025
Summary
I recently interviewed for an L4 role at Google in India and unfortunately received a reject. My experience included a screening round and multiple onsite rounds covering coding, design, and behavioral aspects, with mixed results across different sections.
How it went
My interview process for the L4 role at Google in India took place in August 2025. It started with a screening round, followed by several onsite rounds, including coding, system design, and a 'Googlyness' interview.
Screening Round
In the screening round, I was presented with two coding problems:
- The first problem was Remove All Adjacent Duplicates In String. I implemented a single-pass solution using a vector, which seemed to work well, and I successfully dry ran my approach.
- The second problem was Russian Doll Envelopes. I solved this using the Longest Increasing Subsequence (LIS) algorithm combined with a binary search approach, and also performed a dry run.
Based on the feedback I received, my performance in this round was perceived as 'Strong Hire' (SH).
Onsite Rounds
Round 1: Coding
The first onsite round was a coding challenge. The interviewer presented a problem that seemed to be a variant of a Google L3 level question. I struggled with this one, and the feedback indicated a 'Strong Hire' (SH) decision for this round, which I found surprising given my performance.
Round 2: Coding
This round also involved two coding problems:
- The first was an ad-hoc probability question, which unfortunately I don't recall the specifics of. It was conceptually similar to Maximum Students Taking Exam but was an easier variant. I managed to solve it and completed a dry run successfully.
- The second problem was Path With Maximum Probability, or something very similar. I wasn't able to devise an optimal solution or perform a complete dry run. I also didn't take the hints provided by the interviewer, which likely contributed to my 'Not Hire' (NH) feedback for this round.
Round 3: System Design
This round started quite unusually. The interviewer presented a rather abstract problem related to a rhyming scheme, which was very unclear to interpret. After a brief, somewhat circular discussion where I tried to clarify the problem, the interviewer decided to switch gears after only about seven minutes, stating that candidates often find that problem difficult. We then moved onto a standard system design problem, for which I felt my explanation and approach were quite good. Despite not solving the initial coding problem, the feedback for the design part was positive, although the overall round was marked as 'Not Hire' (NH).
Round 4: Googlyness
The final round was a 'Googlyness' interview. I felt this went reasonably well, and the feedback was either 'Hire' (H) or 'Strong Hire' (SH), though at that point, it probably didn't significantly impact the overall outcome.
Ultimately, I received a reject for the L4 position.
Questions asked (3)
- 01
Remove All Adjacent Duplicates In String
Data Structures & Algorithms · Easy
Open the problemYou are given a string
s, which consists of lowercase English letters. A duplicate removal consists of choosing two adjacent and identical letters, and removing them. We repeatedly make duplicate removals onsuntil we no longer can. Return the final string after all such duplicate removals have been made. It can be proven that the answer is unique. - 02
Russian Doll Envelopes
Data Structures & Algorithms · Hard
Open the problemYou are given a 2D array of integers
envelopeswhereenvelopes[i] = [wi, hi]represents the width and height of an envelope. One envelope can fit into another if and only if both its width and height are strictly greater than the other envelope's width and height. Return the maximum number of envelopes you can Russian doll (i.e., put one inside another). - 03
Path With Maximum Probability
Data Structures & Algorithms · Medium
Open the problemYou are given an undirected graph with
nnodes, numbered from0ton - 1. You are given an arrayedgeswhereedges[i] = [u, v]means that there is an edge between nodesuandv. You are also given an arraysuccProbof lengthedges.lengthwheresuccProb[i]is the probability of success of traversing thei-th edge. The graph has at most one edge between any any pair of nodes. Return the path with the maximum probability of success to go fromstartnode toendnode. If there is no path fromstarttoend, return0. The answer will be accepted if it differs from the true answer by at most1e-5.