← Interview experiences
Got the offer

L4 at Google

Difficulty
Process took
6+ Weeks
Rounds
4
Format
Remote
Applied via
Company Website

How it went

  • Don’t rush through your answers, In both technical and behavioral rounds, it’s important to take your time to think and articulate your thoughts clearly.

What they would tell you

  • Don’t rush through your answers, In both technical and behavioral rounds, it’s important to take your time to think and articulate your thoughts clearly.

How to prepare

  • Practice daily DSA and system design prep, focus on both breadth and depth.
  • Prepare your stories, reflect on your career, failures, wins, and moments of growth Keep them honest and concise.

Their background

I’m currently a Software Engineer with 4+ years of experience working with Java, Python, and cloud technologies

Round by round

  1. 1

    Phone Screening Round60 min

    The first interaction was a phone screen with a Google engineer. This round was focused on evaluating my coding skills and my approach to solving problems. Problem: Evaluate Mathematical Expressions with Embedded Operations The task was to simplify Mathematical expressions involving embedded operations. For example:

    • x - (y - z) simplify to x - y + z
    • x + (y - x) simplify to y My approach in breaking down the operations and ensuring the correct precedence while simplifying the expressions. Follow-up - How to handle expressions that involved nested parentheses more efficiently
  2. 2

    Technical Coding 160 min

    The onsite interview, three rounds. In this round, I was asked to design and implement a BookManager class. I had to create a BookManager class with the following core functionalities:

    • insert(bookNumber, score): This would add a new book along with its associated score.
    • get(): This function should return the book with the highest score. However, after a book is retrieved, its score decreases by 1, and it becomes temporarily ineligible for the next get() call. Follow-up: Once a book is retrieved, it should remain ineligible for the next n get() calls, not just one.
  3. 3

    Technical Coding 260 min

    I was presented with a stream of tuples in the format (timestamp, message)—all arriving in non-decreasing timestamp order. The task was to display a message only if it hadn’t been shown in the last 10 seconds. Example Behavior:

    • (10, "solar panel activated") → show
    • (11, "low battery warning") → show
    • (12, "tire one: low air pressure") → show
    • (13, "solar panel activated") → suppress (last shown at 10)
    • (21, "solar panel activated") → show (21 − 10 = 11)
    • (35, "solar panel activated") → show (35 − 21 = 14) To solve this, I used an eviction-based logic, where I kept track of the last shown timestamp for each message. If a message had been displayed within the last 10 seconds, it was suppressed; otherwise, it was shown and the timestamp was updated. I emphasized that the time complexity of the displayMessage() method was O(1), as it simply checked and updated a hash map.
  4. 4

    Googleyness + Behavioral60 min

    More on my fit with Google's culture

    • Tell me about a time when you had to take ownership of a project.
    • How do you handle disagreements in a team?
    • Tell me about a time you worked under pressure to meet tight deadlines. In this round, the interviewer wanted to gauge how well I aligned with Google’s Leadership Principles. I made sure to use the STAR method to structure my answers and provide detailed examples from my past experiences.

What came up

HardRemote4 5 years

A candidate-reported account, lightly edited. Interview processes change by team and date.

Sources