Logo

Google

Software Engineer

Found 275 Experiences

Filters
Onsite
Level
Difficulty
Result
  • Stage
  • Onsite
  • Level
  • L4
  • Difficulty
  • Hard
  • Result
  • Selected
  • Overall Experience
  • Share

Interview Experience

My profile:

  • Professional experience: 1Y 11M (when the process began, Currently: 2Y 4M)
  • Previous Company: 1 product-based mid-size, 1 FAANG
  • Preparation:
  • LC: 125 Easy | 450 Medium | 175 Hard
  • No Competitions
  • Language of code: Python 3

Phone Interview

I was asked an open-ended question. Ex: Write a code to show top news articles to a user. The interviewer wasn't looking for a particular answer and he made this very clear as soon as we started. The question involved tacking which subsystem I want to solve and code for, then finding out the accurate data structure for it. I was able to identify the accurate classes that I could make. I quickly wrote the skeleton of those classes and moved on to the core logic. Here, I used a dictionary (map) and heap which was well suited for my question. The interviewer threw a few follow-up questions on this which I answered.

Result: Hire (Bump up to L4. I had started with L3)

Onsite Interview

Note: All my rounds were DSA rounds, when I say system design here. I mean questions like Design Twitter

Round 1:

I was asked to design a system. Google likes asking these questions. So those who are unfamiliar with these, please check them out on . Ex: Design Search Autocomplete System I quickly identified the 3-4 main functions that I would be using. I used the combination of a queue (sliding window) and a dictionary (hashmap). I wrote the code for this and he was happy with it. He asked me about the drawbacks of this system. My system was using lazy deletion and could take up way too much RAM in case of a DOS/DDOS attack. I told him how I'll solve it. I gave him an architecture solution instead of a code one and he was very happy with it.

Result: Strong hire

Round 2:

Again I was given a system. However, in this round, the main question was very straightforward. It used just a dictionary (hashmap) in the beginning. However, there were a lot of follow-ups for this. Follow-up 1: He asked me to make a minor change to the dictionary storing logic. I quickly did that and it seemed good. Follow-up 2: He asked me how this system would work in real life. I gave him a bit of architecture that I was thinking of. I was asked to write a game loop (infinite running loop) after I explained that I would use long polling. Follow-up 3: I misinterpreted this follow-up and took some time to clarify it. This was a pretty challenging task as I had to look up the future (the dictionary looks up the past) and then make a decision. I gave him a queue-based solution for this.

Result: Hire

Round 3:

This was one of the hardest questions I have ever seen. For context, the question itself was around 1 and a half pages long (with images). It was a game theory question that followed Zermelo's theorem (please correct me if I am wrong) so there was always going to be a winner. So basically I had to decide the optimal strategy and tell who would win at the end of the game. Determining how to represent the state of the game and explaining my logic behind it took around 15 mins. I was able to break this into smaller subproblems and tackled each case first. I used DP + DFS + combinatorics. I was barely able to complete the code at the end of the interview. Calculating the time complexity for this was way too hard (at least for me). However, I had thought of an upper bound but it never came to that.

Result: Strong hire

Round 4:

This was the Googlyness round. These rounds are usually my strong points and where I am naturally strong. However, knowing that my tech rounds went well, panic and anxiety got me. I was offset during the whole round and wasn't happy with how I performed. Regarding the details of the rounds, mostly I was asked about my previous experience and significant projects. He asked me behavioral questions based on them which I answered using the STAR pattern.

Result: Lean Hire

Post Interview: The recruiter called me hours after my Googlyness round telling me that my interviews went very well. I thanked her and the process for team fit/ HC began. I was affected by the hiring freeze and it took me a total of months from the start of the phone interview till the offer. Matched with 1 other team which found me to be a fit but the position closed after a revised headcount was taken.

Key takeaways:

  • Keep talking and never assume that something is understood. Explain as much as you can.
  • If you can't think of the best approach, try to compensate for it with something else.
  • Try to go outside the code and explain how you can relate this to a product.
  • Recruiter is your best friend during this time
  • Lastly, enjoy the interviews. Interviewers are fun and they love to have an interesting technical conversation

  • Stage
  • Onsite
  • Level
  • L3
  • Difficulty
  • Medium
  • Result
  • Selected
  • Overall Experience
  • Share

Interview Experience

Experience: 1.5 years Position: L3 Date: October - November 2024

Phone Screen Grid question with some constraints.

Onsite 1: DSA

You are given a number (very long) and an integer K. Find the largest K-digit number that can be formed from the original number (preserve the order).

Example: S = "3582", K=2
Output: "82"

Follow up 1: Solve in O(n) time
Follow up 2: Solve in O(n) time and O(k) space

Approach: Solved using a monotonic stack.

Onsite 2: DSA

Get all sequences that sum to a particular number if digits 1 & 2 can be used.

Example: Sum=4
Result: ["1111", "112", "121", "211", "22"]

Follow up 1: What if we are allowed to use first K digits (1,2,3,...,K)?

Approach: recursion /backtracking solution.

Note: For the original question, the time complexity is not O(2^N), but as it is a Fibonacci sequence, the complexity is (golden ratio)^n i.e., 1.618^n. I spent a couple of minutes discussing the time complexity; I couldn't come up with 1.618^n but was able to point out the tree pruning.

Follow up 2: What if we have to only count the number of sequences for the original question?

Follow up 3: Count the number of sequences when K digits are allowed

Simple O(n) dp. For the 3rd follow up, use prefix sum for better time and space complexity.

Onsite 3: DSA

Given an expression with some variables, operands (+ and -) and parenthesis, return the simplified expression.

Example: a-(a-b)-c
Output: b-c

Count the variables with a map.

Follow up:
What if nested parentheses are allowed?

Example: a-(b-(c-a)) + c
Output: -b+2c

Along with a map, we need a stack to store the latest sign. For this round, the focus was more on clean code and covering the edge cases.

Onsite 4: Googliness Behavioral questions

Had 2 team matches, both successful.

Offer was released in December.

  • Stage
  • Onsite
  • Level
  • L3
  • Difficulty
  • Medium
  • Result
  • Rejected
  • Overall Experience
  • Share

Interview Experience

Google SWE Grad 2025 | Held from July

Applied through campus.

Round 1: Online coding round

I had two questions for the online coding round; one was a dynamic programming problem (a variation of the longest common subsequence problem, but slightly more difficult) that I solved. I did not manage to solve the other question, and I don't remember what it was.

After one week, I received an email stating that I was shortlisted from the online coding round.

I was invited to a meeting to discuss the interview process. They mentioned that there would be three interview rounds: a DSA round, a DSA + Googliness round, and a third DSA round.

Round 2: DSA round (45 minutes) The interviewer introduced herself and asked for my introduction. I had high-speed internet, but the link she provided took five minutes to load. Approximately 10-12 minutes of my time was already gone before she presented the question.

A connection of cities was given, and I needed to find the farthest distance from all of the input cities. For example: a->h, b->h, h->c.

I asked about constraints and explained my brute-force BFS approach. She asked me to optimize my solution. I thought for a bit and realized it could be solved using Dijkstra's algorithm, performing Dijkstra's algorithm for each input as a single source and using a vector to update values for each input source. She said I was on the right track and asked about the time and space complexity, which I explained.

Next, I had to code. I started coding, but I made the mistake of not asking her for the input format and directly started coding using small characters as an example. She stopped me and said, "Who told you to use small characters? Use strings." Then I started coding again. I was just about to finish the Dijkstra function code when she announced, "Time's up."

Round 3: (DSA + Googliness): If shortlisted from the coding round, I had to attend two interview rounds; the last round would be announced after review from both rounds. (This interviewer was different from the Round 2 interviewer.)

First, she asked me a simple, easy-level hash map question and a follow-up. She was impressed with my answers. Then she asked me a sliding window problem, which was quite tricky. After solving it on pen and paper, I recognized it as a sliding window problem and explained this to her. Then she asked me to write the code, which I did, explaining the space and time complexity. For the Googliness round, she asked me some standard behavioral questions.

Round 3 went well, but because I was unable to finish my code in Round 2, I wasn't shortlisted for the next round. Better luck next time.

Unlock all 275 interview experiences for Google Software Engineer!

Onsites.fyi Premium

Ready to advance your career to a high-paying job in FAANG?

Unlock All 2200+ Interview Experiences

Insights from 40+ Big Tech Companies

Access to all Candidate Profiles

Advanced Filtering (Interview Level, Difficulty, Result and more)

One year access, continuous updates

$1M0 The FAANG Formula Newsletter

A weekly newsletter packed with insider insights, proven strategies, and the hottest job openings to land your dream job in big tech.