RejectedSoftware Engineer (L4) at Google
- Difficulty
- Process took
- 3-4 Weeks
- Rounds
- 5
- Format
- Remote
- Applied via
- Referral
How it went
- If a round feels off (like mine with a disengaged interviewer), try not to let it affect your performance in the remaining rounds. Stay focused on what you can control.
- Google doesn’t always reject due to wrong solutions, sometimes, it’s speed, clarity, or missed edge paths that make the difference.
What they would tell you
- If a round feels off (like mine with a disengaged interviewer), try not to let it affect your performance in the remaining rounds. Stay focused on what you can control.
- Google doesn’t always reject due to wrong solutions, sometimes, it’s speed, clarity, or missed edge paths that make the difference.
How to prepare
- Google’s problems often deviate from standard patterns, prepare to think flexibly.
- Be ready to discuss space/time trade-offs, even when your solution works, Google values the "why" behind your decisions as much as the code.
Round by round
- 1
Initial Phone Screen60 min
I was given a matrix that contains zeros, and somewhere in it, there could be a square sub-matrix made entirely of ones. If it exists, it is the only one in the matrix. The task was to find its size and the position of its top-left corner. Approach:
- Discussed various strategies,brute force vs. DP
- Talked about time complexity, space optimization, and best data structures to use
- Good technical conversation
- 2
DSA + Problem Solving60 min
This round was with an Indian interviewer, but honestly, he seemed a bit disinterested throughout the conversation. The question was to take 3 numbers and a target and find an expression using only +, *, and () that evaluates to the target, keeping the numbers in the same order. For example: (3 + 2) * 4 = 20. He first asked how many combinations are possible, so I explained a backtracking approach, which he seemed okay with. But while implementing it, I found it a bit tricky.
- 3
DSA60 min
Given a fence with varying heights (array of integers), and a brush of 1m width that can paint vertically or horizontally in one stroke, return the minimum number of strokes needed to paint the entire fence. Example Input: 1 2 2 1 2 → Output: 3 Approach:
- Implemented an optimal divide and conquer solution
- Handled edge cases cleanly
- Interviewer was engaged and satisfied
- 4
Problem Solving60 min
In this round, I was asked to solve a design-style problem based on a messaging system. Each event represented a message from one user to another with some content. I had to implement two methods:
- registerEvent(user1, user2, content) – to store the interaction between two users
- getFrequent() – to return any user who has been mentioned the most (i.e., received messages from the highest number of unique users). Repeated messages from the same sender to the same receiver were to be counted only once.
- 5
Googliness + Culture Fit45 min
- Projects I’ve worked on
- Past mistakes and learnings
- Team collaboration examples
- Conflict resolution and ownership
What came up
A candidate-reported account, lightly edited. Interview processes change by team and date.