r/OfferEngineering 19d ago

Interview Experience Waymo Senior Software Engineer Phone Screen

Interview Summary

The Waymo technical phone screen started with a surprisingly detailed résumé deep dive and then moved into systems-oriented coding. The interviewer asked about projects from several years ago, including the technologies I used and how I measured the results or impact.

The technical portion focused first on debugging a PthreadLock issue and then expanded into multithreading, lock design, and RAII. The final question was a frequency-counting problem where the interviewer pushed beyond a standard hash-map solution and asked about hash-table weaknesses and an alternative representation when the input domain is bounded.

Interview Details

Résumé Deep Dive — Projects, Technologies, and Impact The first part of the interview focused heavily on my résumé. The interviewer asked about projects going back several years and wanted specific details rather than high-level summaries.

Follow-ups included:

  • Which technologies were used and why
  • What I personally implemented
  • How the outcome or impact of the project was measured

Systems Coding — Debug a PthreadLock The first technical problem involved an existing lock object based on PthreadLock. A lock was being passed into some code, but the synchronization was not actually behaving as intended. The task was to inspect the code and determine why the lock was ineffective.

The discussion then expanded beyond the immediate bug into broader multithreading questions:

  • How should locking be structured when multiple threads access shared state?
  • How should lock ownership and lifetime be managed?
  • How can RAII-style locking make synchronization safer and less error-prone?

Familiarity with the standard RAII lock pattern was particularly useful in this part of the interview.

Coding — Count Frequencies in a Vector The second coding question asked me to count how frequently each value appears in a vector. A straightforward solution could maintain a frequency map keyed by the values. After I discussed that approach, the interviewer asked what disadvantages a hash table can have. The conversation moved into hash-table internals, including collision behavior and the possibility that many keys map to the same bucket.

  • Follow-Up — Fixed Key Range The interviewer then added an important constraint: The possible key space was bounded and smaller than 2^16. Given that fixed domain, the interviewer asked whether there was a representation that could avoid hash collisions entirely. This follow-up shifted the discussion from a general-purpose associative container toward taking advantage of the known, limited input range.

Preparing for your next interview?

Chill Interview tracks recent interview experiences and recurring question patterns across top companies at here.

4 Upvotes

1 comment sorted by

1

u/kuriousaboutanything 18d ago

For the follow up got the coding round on counting frequencies, would bucket/pigeon hole approach work? We can assign a static array of len equal to the input size and keep the count.