Google | L4 | Reject
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.
Full Experience
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.
Interview Questions (3)
You 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 on s until 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.
You are given a 2D array of integers envelopes where envelopes[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).
You are given an undirected graph with n nodes, numbered from 0 to n - 1. You are given an array edges where edges[i] = [u, v] means that there is an edge between nodes u and v. You are also given an array succProb of length edges.length where succProb[i] is the probability of success of traversing the i-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 from start node to end node. If there is no path from start to end, return 0. The answer will be accepted if it differs from the true answer by at most 1e-5.