DoorDash System Design Interview: Menu Item Reviews and Voting
Based on questions reported for DoorDash interviews
The interviewer opens
Hi, and thanks for joining. Welcome to your interview for the software engineer role at DoorDash. We'll design a system together, with you sketching on the whiteboard on the right of your screen as you talk. If you need to step out or take a break, you can pause the interview any time with the Pause button at the top right.
The problem is up in the Problem tab, about menu item reviews and voting, which matters for DoorDash since customers lean on item feedback when ordering. Please read through it and ask me anything you'd like clarified before you start drawing.
The problem
Design a review system for DoorDash where customers review specific menu items they ordered, other customers upvote or downvote those reviews, and reviewers earn credit rewards when their reviews prove helpful.
Must do
- Customers write a rating and text review for a menu item they ordered
- Other customers upvote or downvote a review, one vote each, changeable
- Item pages show reviews with vote counts, most helpful first
- Reviewers earn DoorDash credits when a review reaches helpfulness milestones
Must hold
- Voting and review pages keep working on the most popular restaurants through the dinner peak
- Every earned reward is paid exactly once: never twice, never missed