DoorDash logo

DoorDash Backend Engineer Interview Questions

41 practice questions for DoorDash Backend Engineer interviews

DoorDash backend engineer interviews typically focus on APIs, databases, system design, concurrency, caching, and data structures.

All Roles Software Engineer Backend Engineer Frontend Engineer Full Stack Engineer Mobile Engineer Data Engineer Data Scientist ML Engineer DevOps Engineer DevOps Engineer Product Manager SRE Security Engineer Engineering Manager Data Analyst UX/UI Designer QA Engineer
12
Coding
1
System Design
system design Hard Verified Question #1

1. 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 Medium Verified Question #2

2. Code Craft - Bootstrap API


Category: String coding problem
# Question You are tasked with implementing a Bootstrap API that aggregates data from multiple services for a given user. Given a userId, you...
Input: String
Output: Computed result
coding Hard Verified Question #3

3. 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
coding Medium Verified Question #4

4. Find Closest Dasher


Category: Algorithm coding problem
# Question You are given an m × n board representing a delivery area. The board contains: - 'X' - blockers (obstacles) - 'D' - DashMarts...
Input: List
Output: Integer
coding Medium Verified Question #5

5. Find Menu Changes


Category: Tree coding problem
# Question You are given two tree structures representing an old menu and a new menu. Each tree node has: - key: identifier for the menu...
Input: List
Output: Computed result
coding Medium Verified Question #6

6. Location Index


Category: Graph coding problem
Implement a LocationIndex class that stores a set of named points on a 2D grid. The constructor takes three arrays: names (list of location name...
Input: 2D grid
Output: Computed result
coding Medium Verified Question #7

7. Covered Service Zones


Category: Algorithm coding problem
You are given two binary m x n matrices: coverage and demand. A cell in demand is active if its value is 1. Active cells that are...
Input: Number(s)
Output: Integer
coding Hard Verified Question #8

8. 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 Medium Verified Question #9

9. Peak Value Processing Order


Category: Algorithm coding problem
You are given a list of unique integers values. At each step, identify all eligible values: a value is eligible if it is strictly greater than...
Input: List
Output: Computed result
coding Hard Verified Question #10

10. 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 #11

11. 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 Medium Verified Question #12

12. Meeting Slot Generator


Category: Interval-based coding problem
Given a start time and an end time, generate all meeting check-in slots at 5-minute intervals after start up to and including end. The...
Input: List
Output: Computed result
coding Medium Verified Question #13

13. Catalog Tree Diff Counter


Category: Tree coding problem
You are given two n-ary trees representing an old and a new version of a product catalog. Each node in the tree has the following fields: - key...
Input: List
Output: Computed result
system design Senior messaging #1

1. [OA] Job Scheduler — implement a scheduling service for DoorDash's delivery times

To ensure timely deliveries, DoorDash requires a job scheduler capable of scheduling deliveries at specific times and managing overlaps. The service should allow adding and querying scheduled deliveries.
Class Signature: class JobScheduler:
- def __init__(self): - Initializes the scheduler.
- def add_job(self, start_time: int, end_time: int) -> bool: - Attempts to add a job and returns true if successful; false if it overlaps with an existing job.
- def get_jobs(self) -> List[Tuple[int, int]]: - Returns a list of all scheduled jobs.
Example 1:
Input: scheduler = JobScheduler()
scheduler.add_job(1, 2)
Output: True
scheduler.add_job(2, 3)
Output: True
scheduler.add_job(1, 2)
Output: False
Constraints:
- 1 <= start_time < end_time <= 10^9
- 0 <= total_jobs <= 10^4
system design Senior api design #2

2. [OA] RateLimiter — design a rate-limiting service for DoorDash's API

DoorDash requires a rate limiter to control API access from clients, preventing abuse and ensuring fair usage. The rate limiter should allow a maximum requests_per_second from each client, while providing methods to log requests and check if a request is allowed.
Class Signature: class RateLimiter:
- def __init__(self, requests_per_second: int): - Initializes the rate limiter with a limit on requests per second.
- def allow_request(self, client_id: int, timestamp: int) -> bool: - Returns true if the request is allowed, false otherwise.
- def log_request(self, client_id: int, timestamp: int) -> None: - Logs a request for the client at the given timestamp.
Example 1:
Input: rate_limiter = RateLimiter(2)
rate_limiter.allow_request(1, 1)
Output: True
rate_limiter.allow_request(1, 2)
Output: True
rate_limiter.allow_request(1, 3)
Output: False
Constraints:
- 1 <= requests_per_second <= 100
- 1 <= client_id <= 10^6
- 1 <= timestamp <= 10^9
coding Hard graph #3

3. [OA] Graph Traversal — optimize DoorDash's restaurant selection algorithm

DoorDash needs to determine the most popular restaurants within a geographical area. To accomplish this, a graph traversal algorithm can be applied to search for the connected components in the restaurant delivery network.
Using n restaurants where each restaurant is a node connected by edges (deliverable routes), write a function that returns the number of connected components in the graph representing the available restaurants.
Function Signature: def count_connected_components(n: int, edges: List[Tuple[int, int]]) -> int: - Returns the number of connected components in the given graph.
Example 1:
Input: n = 5, edges = [(0, 1), (1, 2), (3, 4)]
Output: 2
Explanation: There are two connected components: {0, 1, 2} and {3, 4}.
Constraints:
- 1 <= n <= 10^4
- 0 <= len(edges) <= n*(n-1)/2
coding Hard sliding window #4

4. [OA] Sliding Window — optimize the order delivery window for DoorDash's logistics

In order to maximize delivery efficiency, DoorDash needs to determine the optimal delivery window for a set of orders. By using a sliding window technique, we can minimize the time taken to deliver all orders without exceeding a certain capacity.
Given an array of orders where each order contains the pickup_time and delivery_time, return the maximum number of orders that can be delivered within a given time_limit.
Function Signature: def max_orders(orders: List[Tuple[int, int]], time_limit: int) -> int: - Returns the maximum number of orders that can be fulfilled within the given time limit.
Example 1:
Input: orders = [(1, 4), (2, 6), (3, 8), (5, 10)], time_limit = 8
Output: 3
Explanation: Orders (1, 4), (2, 6), and (3, 8) can be delivered within the time limit.
Constraints:
- 1 <= len(orders) <= 10^5
- 0 <= pickup_time < delivery_time <= 10^6
- 0 <= time_limit <= 10^6

Related DoorDash Backend Engineer interview prep

Start practicing DoorDash questions

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

Get Started Free