Interview experiences

Google L5 machine learning engineer interview: phone screen skipped, four technical rounds, and an offer

Google logoGoogleL5 Machine Learning Engineer·Remote·Interviewed April 2022Offer

Updated July 17, 2026

The candidate, a mid-20s engineer with about four years of FAANG experience plus half a year at a startup and a master's degree in computer science with a machine learning focus, started this interview cycle roughly six weeks earlier after Amazon's return-to-office policy prompted a job search. Preparation was light on fresh coding practice — five to ten LeetCode problems in the prior month — and centered mainly on reading system design material. The candidate held an L6 title at Amazon going into the cycle and was interviewing at several companies in parallel; this account focuses on the Google loop for an L5 machine learning engineer role.

Because the candidate had worked at Google before and had referrals, the phone screen was skipped entirely. The loop that followed consisted of an ML modeling round paired with a data-cleaning task, a system design round on extending a payments product internationally, a second ML and design round on training a model from streaming data, a coding round with two string-processing problems, and a behavioral round. Self-assessed performance varied a lot round to round — from a 2 out of 7 on the final coding round to a 7 out of 7 on the streaming-data design round — but the loop still ended in an L5 offer.

How the process went

  1. Trigger and preparation

    The cycle began about six weeks before this account was written, prompted by Amazon's return-to-office policy. The candidate had done limited fresh LeetCode practice (five to ten problems in the prior month) and focused preparation mainly on reading system design material.

  2. Phone screen

    Skipped for Google specifically, because of the candidate's prior employment there and referrals into the process.

  3. ML modeling round

    A modeling exercise the candidate described as 'model matching,' combined with a task to clean raw user motion-tracking data so it could be used for training.

  4. System design round

    Extend an existing US-only Google Pay implementation so that it would work globally.

  5. ML/system design round

    Design a model trained on live data arriving from multiple streams, then pseudocode a MapReduce-based approach for the backpropagation step.

  6. Coding round

    Two string-processing problems: counting how many times a substring occurs within a string, and finding the maximum number of duplicate substrings of a given size.

  7. Behavioral round

    The candidate self-rated this round positively but did not record the specific questions asked.

  8. Outcome

    Received an L5 offer, with a compensation package the candidate summarized as three figures, 220/150/35 (in thousands of dollars; the exact breakdown wasn't specified). This was one of several offers received in the same cycle, which the candidate pointed to as leverage against being lowballed.

ML modeling round

ML modeling — a matching exercise plus a data-cleaning task

  • A modeling exercise the candidate described as 'model matching,' during which the candidate needed a reminder about LSTMs before proceeding.
  • A follow-up task to clean raw user motion-tracking data so it could be used for training, during which the candidate was corrected multiple times on data-cleaning syntax.

The candidate self-rated this round 6 out of 7.

System design round

System design — extending a payments product internationally

  • Extend a Google Pay implementation that already worked in the US so that it would function globally.

The candidate started with an approach later described as the wrong one, corrected it after a hint from the interviewer, and self-rated the round 5 out of 7, believing the final design fell short of optimal.

ML/system design round

ML system design — training on streaming data, distributed backpropagation

  • Design a model trained on live data arriving from multiple streams.
  • Pseudocode a MapReduce-based approach for the backpropagation step.

The candidate finished with about five minutes to spare and self-rated this round 7 out of 7, the strongest self-assessment of the Google loop.

Coding round

Coding — string processing

  • Count the number of times a given substring occurs within a string.
  • Find the maximum number of duplicate substrings of a given size n.

The candidate reached an optimal solution for the first question but did not complete the second, self-rating the round 2 out of 7, the lowest of the loop.

Key takeaways

  • Clear, structured communication about an approach mattered as much as reaching an optimal solution — the candidate received offers across the cycle despite not fully solving every hard problem.
  • ML rounds can combine a modeling task with a data-wrangling task in the same session; being rusty on fundamentals like LSTMs or on clean data-cleaning syntax can cost points even when the overall approach is right.
  • A weak self-assessed round (here, the final coding round) is not automatically disqualifying on its own — treat each round as one data point rather than the full verdict.
  • Running multiple companies' processes in parallel created leverage; the candidate's own advice is to line up competing offers before finalizing compensation, to avoid being lowballed.
  • Practicing mock interviews and narrating a thought process out loud was, in the candidate's account, more useful preparation than grinding additional LeetCode problems for a senior ML role.

Source

The questions and process facts come from the candidate's public write-up, linked below. The retelling above is our own summary.

Candidate's public write-up on LeetCode Discuss