DoorDash logo

DoorDash Hard Interview Questions

7 hard-level practice questions for DoorDash technical interviews

4
Coding
1
System Design
coding Hard Verified Question #1

1. Code Craft - Driver Payment System


Category: Algorithm coding problem
# Question You are in charge of implementing the Dasher payment model. Given the sequence of accepted/fulfilled order activities from a given dasher...
Input: List
Output: Computed result
system design Hard Verified Question #2

2. Top 8 Doordash System Design Questions Jan 2026


Category: Linked list system design problem
# System Design Questions - DoorDash These are the commonly asked system design questions from DoorDash interviews. Updated January 2026.
Input: Linked list
Output: Computed result
coding Hard Verified Question #3

3. Wildcard Segment Counter


Category: String coding problem
You are given a template string consisting only of the characters '0', '1', and '?', and a list of integers run_lengths. A '?' in the...
Input: Array of integers
Output: Computed result
coding Hard Verified Question #4

4. Directory Registry


Category: Tree coding problem
Implement a DirectoryRegistry class that manages a hierarchical key-value store modeled as a tree of paths. The root path "/" always exists with...
Input: String
Output: Computed result
coding Hard Verified Question #5

5. Ride Earnings Calculator


Category: String coding problem
You are given records, a list of ride events. Each record is a list of three strings: [ride_id, timestamp, status]. Possible statuses are...
Input: List
Output: Computed result
coding Hard graph #1

1. [OA] Depth-First Search — Optimize Driver Matching for DoorDash

DoorDash needs to effectively match drivers to delivery requests based on location and time constraints.
Problem Statement: Given a grid of n x m representing a map where 1 represents an order location and 0 represents an empty space, implement a function maxDrivers(orders: List[List[int]], start: Tuple[int, int]) -> int that returns the maximum number of deliveries that can be assigned to drivers originating from start position.
Example 1:
Input: orders = [[0,0,0],[0,1,0],[0,0,0]], start = (1, 1)
Output: 1
Explanation: The only reachable order is at (1,1).
Constraints:
- 1 <= orders.length, orders[i].length <= 20
- 0 <= start[0] < orders.length
- 0 <= start[1] < orders[i].length
coding Hard sliding window #2

2. [OA] Sliding Window — Design a delivery tracking system for DoorDash

DoorDash needs a robust method to track orders and ensure timely deliveries based on real-time traffic data.
Problem Statement: Given an array of integers representing the estimated delivery times for incoming orders, implement a function maxDeliveryTime(orders: List[int], k: int) -> int that returns the maximum possible delivery time over any sub-array of size k, where k is the number of concurrent deliveries.
Example 1:
Input: orders = [2, 1, 3, 5, 6, 4], k = 3
Output: 14
Explanation: The best sub-array is [5, 6, 4], which yields a delivery time of 5 + 6 + 4 = 15.
Constraints:
- 1 <= orders.length <= 100000
- 1 <= orders[i] <= 1000
- 1 <= k <= orders.length

Start practicing DoorDash questions

Sign up for free to access walkthroughs, AI-generated questions, and more.

Get Started Free