Interview experiences

Google software engineer virtual onsite: a Dijkstra stumble and a hiring committee left unfinished

Google logoGoogleSoftware Engineer·Remote·Interviewed 2020Outcome unknown

Updated July 17, 2026

This account comes from a candidate with about two and a half years of full-stack experience and a non-CS degree, running a broad 2020 job search across roughly sixteen companies at once. A Google recruiter had reached out on LinkedIn months earlier, well before the candidate was actively interviewing. Once the search began in earnest, the candidate followed up with that recruiter and was routed directly to a virtual onsite loop rather than starting with a separate phone screen.

The loop was five back-to-back interviews covering coding, an algorithm-heavy round, and a behavioral "Googleyness" conversation. Overall feedback was mostly positive, but one round exposed a real prep gap — the candidate had deliberately skipped Dijkstra's algorithm while studying, assuming it was too specific to come up in a 45-minute interview. It came up. The hiring committee weighed that weaker round against otherwise strong performance and asked for two additional interviews focused on front-end and JavaScript before making a decision. The candidate started team matching while waiting for those interviews to be scheduled, but a competing offer arrived first and the candidate withdrew from Google's process before the extra rounds happened.

How the process went

  1. Sourcing

    A Google recruiter messaged the candidate on LinkedIn roughly six months before the candidate began actively job hunting; the candidate followed up once ready to interview.

  2. Recruiter call

    A short conversation covering background, the role, and what the interview process would involve.

  3. Virtual onsite

    Five interviews in one loop, conducted remotely: three coding rounds, one algorithm-focused round, and a Googleyness/behavioral round.

  4. Hiring committee review

    Feedback was mostly positive, but the weaker showing on the Dijkstra-focused round led the committee to request two more 45-minute interviews on front-end and JavaScript before deciding.

  5. Team matching

    Started informally while waiting for the additional interviews to be scheduled; the candidate met a team they felt positive about.

  6. Withdrawal

    Before the two extra interviews could be scheduled, the candidate accepted an offer from a different company and ended the Google process.

Onsite round 1

Coding — string manipulation

  • Write a function that shortens each word in a list to a first-letter, count-of-omitted-letters, last-letter form (for example, turning "google" into something like "g4e"); if a shortened form collides with another word's, expand it one extra letter at a time until the set is unique.

Onsite round 2

Coding — graph algorithm

  • A problem framed as a real-world application of weighted Dijkstra's algorithm.

The candidate had not specifically practiced Dijkstra's algorithm beforehand, assuming it was unlikely to come up in a short interview, and struggled through this round as a result. Rather than leaving it blank, the candidate worked the parts that were closer to general math, kept asking questions about how the algorithm worked, and tried to leave a reasonable impression despite not solving it cleanly.

Onsite round 3

Coding — systems-flavored problem

  • A problem about tracking when RPC calls were made and detecting when a given call exceeded a timeout threshold.

Onsite round 4

Googleyness — behavioral

  • A series of situational behavioral questions (the source account did not itemize the individual prompts).

Onsite round 5

Coding + system-design-adjacent discussion

  • Given an array of numbers and a target value, rotate the array around the target position without changing the relative order of the other elements — the candidate recalled this only approximately, not as an exact problem statement.
  • Discussion-only follow-up: given a square map and a set of locations on it, where users can select a rectangle and retrieve every location inside it, how would you preprocess the location data so that query runs faster than O(n)?

The first problem was coded; the map-preprocessing question was discussed conceptually rather than implemented.

Key takeaways

  • Cover every topic on a company's official prep guide, including ones that feel unlikely for a short interview — skipping Dijkstra's algorithm here shaped the outcome of the whole loop.
  • When a round goes badly, staying engaged (narrating your thinking, asking questions, working the parts you understand) can still leave a better impression than going quiet.
  • A single weak round doesn't automatically end a process — a hiring committee can respond by asking for more interviews rather than an outright pass or reject.
  • That same flexibility has a cost: a request for extra interviews can take long enough that a competing offer with a firm deadline arrives first.
  • Team matching starting isn't the same as an offer — it can run in parallel with a hiring committee that hasn't finished deliberating.

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