DoorDash logo

DoorDash Frontend Engineer Interview Questions

41 practice questions for DoorDash Frontend Engineer interviews

DoorDash frontend engineer interviews emphasise JavaScript, DOM manipulation, CSS, accessibility, browser APIs, and UI component architecture.

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

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

2. 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 #3

3. 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 #4

4. 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 #5

5. 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 #6

6. 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 #7

7. 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 #8

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

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

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

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

12. 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 Hard Verified Question #13

13. 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 backtracking #1

1. [OA] Combination Sum — Optimize DoorDash promotions for maximum order collection.

DoorDash wants to create bundled promotions that maximize customer engagement while ensuring profit margins. Given an array of integers products representing the price of each product and an integer target, find all combinations of products that sum up to exactly target.
Function Signature:
python
combinationSum(products: List[int], target: int) -> List[List[int]]
Example 1:
Input: products = [2, 3, 6, 7], target = 7
Output: [[7], [2, 2, 3]]
Explanation: The combinations that yield 7 are the combinations of products 7 and the numbers 2 and 3 in different quantities.
Constraints:
- 1 <= products.length <= 30
- 2 <= products[i] <= 40
- 1 <= target <= 500
coding Hard sliding window #2

2. [OA] Sliding Window — Calculate the maximum total distance of delivery for DoorDash orders.

DoorDash needs to optimize the delivery routes for drivers by calculating the maximum distance they can cover within a given time frame.
Given an array orders where each entry represents the distance of an order from the restaurant and an integer Time which represents the maximum time available, calculate the maximum total distance of orders that can be completed within that time. The distance for each order is defined as distance[i] = time[i] * speed[i] where speed can be considered constant.
Function Signature:
python
maxDeliveryDistance(orders: List[int], Time: int) -> int
Example 1:
Input: orders = [1, 2, 3, 4, 5], Time = 7
Output: 12
Explanation: The driver can complete orders 3, 4, and 5 within the time limit, accounting for the maximum distance covered.
Constraints:
- 1 <= orders.length <= 1000
- 1 <= orders[i] <= 100
- 1 <= Time <= 1000
system design Senior messaging #3

3. [OA] Design a Debounced EventEmitter for DoorDash.

To manage rapid UI events effectively, DoorDash needs a debounced EventEmitter that prevents triggering events excessively during high-frequency interactions, such as clicks or scrolls.
Class Definition:
python
class EventEmitter:
def __init__(self):
# Initialize your EventEmitter here.
pass
def on(self, event: str, listener: Callable) -> None:
# Add an event listener.
pass
def emit(self, event: str, *args) -> None:
# Trigger an event.
pass
def debounce(self, delay: int) -> Callable:
# Return debounced version of the listener.
pass
Example 1:
Input: emitter = EventEmitter()
emitter.on('event', listenerFunction)
debouncedListener = emitter.debounce(300)
debouncedListener()
Output: Will trigger the listener only if no other calls occur within 300ms.
Constraints:
- Maximum of 1000 events.
system design Senior api design #4

4. [OA] Design a Client-Side Router for DoorDash.

In order to enhance the user experience on DoorDash, we need to create a client-side router that manages different pages and their states within a single-page application (SPA) framework.
Class Definition:
python
class Router:
def __init__(self):
# Initialize your router here.
pass
def add_route(self, path: str, component: Callable) -> None:
# Add a route to the router.
pass
def navigate(self, path: str) -> None:
# Navigate to a specified path.
pass
def get_current_route(self) -> str:
# Get the current route being displayed.
pass
Example 1:
Input: router = Router()
router.add_route('/restaurants', RestaurantsPage)
router.navigate('/restaurants')
Output: Current route: /restaurants
Constraints:
- Maximum of 50 routes.
- Each route path must be unique.

Related DoorDash Frontend Engineer interview prep

Start practicing DoorDash questions

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

Get Started Free