Where to apply ML in a task flow from customer request to driver-uploaded evidence
UberMachine Learning Engineer · Technical ScreenLast updated
An ML system design discussion about a task platform: walk the end-to-end flow from a customer submitting a task to a driver completing it and uploading evidence, and identify where machine learning and LLMs add value. Tests prioritization, model framing, labels, evaluation and risk handling.
This was a short, free-form design discussion at the end of a phone screen. The interviewer described a platform on which customers submit tasks that drivers on the platform carry out: a customer places a task, a driver completes it, and the driver uploads evidence that the task was done. The question was:
Across this end-to-end flow, from the moment a customer submits a task until a driver has completed it and uploaded evidence, where could machine learning, including large language models, be leveraged?
Map the flow, identify the opportunities, and go deeper on the two or three you consider most valuable: what each model would do, what data and labels it would learn from, how you would evaluate it, and what could go wrong.
Constraints and Clarifications
- The task types, evidence formats, volumes and current tooling were not specified. Ask about them or state your assumptions.
- The discussion is short: cover the whole flow first, then go deep on a few ranked opportunities rather than every idea.
Clarifying Questions
- What kinds of tasks do customers submit, and what counts as evidence: photos, videos, documents, text, location data?
- How do customers describe a task today: free text, a form, or a conversation with a sales or operations team?
- How is evidence reviewed today, and how many submissions arrive per day?
- Which error is costlier: accepting bad evidence, or rejecting a driver's valid work?
- Does a rejection of evidence affect the driver's pay for the task?
Hints
Hint 1
Find the human judgment calls: Walk a task from the customer's request to the uploaded evidence and mark every step where a person currently reads, writes, decides or checks something by hand.
Hint 2
Labels decide feasibility: For each candidate opportunity, ask what a wrong prediction would cost at that step and whether past outcomes already provide labels to train and evaluate a model.
Follow-up questions
- At launch you have few labeled rejections of evidence. How do you train and evaluate an evidence-quality model?
- A driver disputes an automatic rejection. How does your design handle the appeal, and how do appeals feed back into the model?
- How would you detect drivers who upload recycled, staged or edited evidence?
- Instructions generated by an LLM turn out to be wrong for some new task types. How do you catch that before drivers act on them?
Solution walkthrough is for members
Get the full walkthrough with reference code and complexity analysis, plus Kitty Coach at 300 messages a day. Hints, the code runner and community answers stay free.