waymo interview experience
Summary
I interviewed at Waymo and went through two technical rounds. The first round involved a coding problem on task scheduling for maximum profit using a greedy approach, and the second round focused on behavioral questions and a coding problem on reading a data stream with an optimization discussion.
Full Experience
My interview experience at Waymo consisted of two rounds.
Round 1
The first round was with an American woman who had a very calm demeanor. We started with some pleasantries, and then moved on to discussing my project background, which made the overall atmosphere quite relaxed.
Coding Question:
I was given a problem: Given several tasks, each with an id, deadline, and reward, schedule the tasks within the time limits to maximize total profit, and return the execution order.
Solution Approach:
My approach focused on maximizing profit within limited time, which I explained could be solved using a greedy strategy:
- Sort all tasks in descending order of reward.
- For each task, find the first available time slot from its deadline backward.
- If a slot is available, schedule it; otherwise, skip it.
The logic seemed clear and simple to implement. After explaining the idea, walking through an example was enough to satisfy the interviewer.
Round 2
This round was conducted by a senior engineer. The first half focused on standard behavioral questions (BQ).
Behavioral Questions:
- How do you handle disagreements within a team?
- How do you influence progress without direct authority?
- What would you do if a project gets stuck?
I emphasized communication and driving progress in my answers, aligning with the company's values of collaboration and influence.
Coding Question:
I was asked to write a function that reads a data stream and returns output based on the sign of parameter n: n > 0 → Output the first n elements. n < 0 → Output the last |n| elements.
Optimization Discussion:
We also discussed optimization: if the stream is very large and n is negative, how can we save memory? My suggestion was to use a circular buffer of fixed length |n| to store the most recent chunk of data.
More Waymo experience can be referred to this site.
Interview Questions (5)
Given several tasks, each with an id, deadline, and reward, schedule the tasks within the time limits to maximize total profit, and return the execution order.
How do you handle disagreements within a team?
How do you influence progress without direct authority?
What would you do if a project gets stuck?
Write a function that reads a data stream and returns output based on the sign of parameter n:
- n > 0 → Output the first n elements.
- n < 0 → Output the last |n| elements.