Google L4 interview experience. Verdict: Reject.

google logo
google
SDE IIRejected
December 17, 20248 reads

Summary

I recently interviewed for an L4 position at Google. Despite successfully solving and coding all technical problems, and receiving positive feedback on most rounds, I was ultimately rejected. This was my best interview performance to date, making the outcome quite disheartening.

Full Experience

I went through a comprehensive interview process for an L4 role at Google. The overall experience was quite intense, encompassing several technical rounds, a system design round, and a behavioral interview. I dedicated three months to preparation, and felt confident in my ability to tackle the problems.

Mock Interview

This was my first round, which went quite well. I was given a problem involving a binary search tree. Verdict: Strong Hire.

Screening Round

This round involved two coding questions. I was able to come up with solutions for both and implemented them, receiving positive feedback from the interviewer. Verdict: Strong Hire.

Onsite 1 (Coding / System Design Elements)

This round focused on processing log entries to detect RPC timeouts. I initially struggled a bit with my approach but eventually landed on a working solution. Verdict: Hire.

Onsite 2 (Coding / Backtracking)

This was a complex combinatorial problem. I proposed a backtracking solution and implemented some pruning. However, the interviewer seemed unconvinced, asking why backtracking would work, which felt like a basic question about exhaustive search. Verdict: Not Hire. I had a feeling about this round.

Onsite 3 (System Design)

This round was about designing an ad server. I provided a solution that the interviewer confirmed was fine, but I still received a 'Not Hire' verdict. This came as a complete shock to me, as I believed I had coded it properly with no syntax errors, and the interviewer's feedback was positive. Verdict: Not Hire. This round's outcome was particularly surprising and disappointing.

Googlyness and Leadership

This was a standard behavioral round where I discussed how I handle various workplace situations, interactions with managers and juniors, and stressful scenarios. Verdict: Hire.

Overall, I'm not feeling good about the outcome. I put in a lot of effort, and this was genuinely my strongest interview performance. Solving all the problems and getting positive feedback on most only to be rejected is hard to process. Especially the Onsite 3 verdict, which I still can't comprehend.

Interview Questions (8)

Q1
Find Keys in BST within Range
Data Structures & AlgorithmsMedium

Given a Binary Search Tree (BST) and a numerical range [L, R], find and return all keys (node values) that fall within this inclusive range.

Q2
Iterative Find Keys in BST within Range
Data Structures & AlgorithmsMedium

Implement an iterative approach to find all keys that lie within a given range [L, R] in a Binary Search Tree (BST). This is a follow-up to the recursive solution.

Q3
Minimum Cost to Reach End by Jumping arr[arr[i]]
Data Structures & AlgorithmsMedium

Given an array of integers arr, you can jump from an index i to arr[arr[i]]. The goal is to find the minimum number of jumps (cost) required to reach the last index, n-1, starting from index 0.

Q4
Minimum Strokes to Paint Fence
Data Structures & AlgorithmsHard

You are given an array of integers representing the heights of fences. You have a paintbrush that can make horizontal and vertical strokes; a single stroke implies not lifting the brush. Find the minimum number of strokes required to paint all fences. Assume a fence of height 0 breaks the array into independent parts.

Q5
Detect Timed Out RPCs in Log Stream
Data Structures & AlgorithmsHard

Design an algorithm to process a stream of RPC log entries in an offline setting. Each RPC call generates two entries: one when it starts and one when it finishes. The objective is to efficiently identify, as soon as possible, any RPC that has exceeded a predefined time threshold (i.e., timed out). The start and end times are not unique, meaning multiple requests can occur at the same timestamp.

Q6
Mahjong-like Tile Game: Find 4 Winning Hands
Data Structures & AlgorithmsHard

Given 12 tiles, each possessing both a color and a number, determine if it's possible to form exactly 4 'winning hands'. A single winning hand requires 3 tiles and satisfies one of two conditions: 1) all three tiles have identical color and number, or 2) all three tiles have the same color and their numbers are consecutive (e.g., 1, 2, 3).

Q7
Ad Server with Non-Consecutive Ad Serving
System DesignHard

Design an ad server that manages a collection of ads, each with content and an associated score (higher score is better). The server must support insertAd(ad) and serveAd(). The serveAd() function should always deliver the ad with the highest current score, with the crucial constraint that the same ad cannot be served consecutively.

Q8
Ad Server with Cooldown Delay and Non-Consecutive Serving
System DesignHard

Extend the previous ad server design. Now, each ad also includes a 'delay' value (e.g., 5). After an ad is served, it cannot be served again until delay other ads have been served. This generalizes the non-consecutive constraint (which can be seen as a delay of 1).

Preparation Tips

I devoted a full three months to preparing for these interviews. My strategy involved extensive practice across data structures, algorithms, and system design. I ensured I understood the core concepts thoroughly and practiced coding solutions for a wide range of problems. During the actual interviews, I was able to come up with solutions for all questions, code them, and confidently dry run them to demonstrate correctness.

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!