16 practice questions for DoorDash technical interviews
codingMediumVerified
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
codingHardVerified
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
codingMediumVerified
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
codingMediumVerified
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
system designHardVerified
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
codingMediumVerified
Location Index
Category: Graph coding problemImplement 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
codingMediumVerified
Covered Service Zones
Category: Algorithm coding problemYou 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
codingHardVerified
Wildcard Segment Counter
Category: String coding problemYou 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
codingMediumVerified
Peak Value Processing Order
Category: Algorithm coding problemYou 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
codingHardVerified
Directory Registry
Category: Tree coding problemImplement 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
codingHardVerified
Ride Earnings Calculator
Category: String coding problemYou 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
codingMediumVerified
Meeting Slot Generator
Category: Interval-based coding problemGiven 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
codingMediumVerified
Catalog Tree Diff Counter
Category: Tree coding problemYou 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 designSeniorcaching
[OA] Cache Implementation — Design a Delivery Caching System for DoorDash
DoorDash needs to cache the most frequently accessed delivery routes to improve API response time. Problem Statement: Implement an LRUCache class with the following methods: - __init__(self, capacity: int): Initialize the LRU cache with positive size capacity. - get(self, key: int) -> int: Return the value of the key if the key exists, otherwise return -1. - put(self, key: int, value: int) -> None: Update the value of the key if the key exists, or add the key-value pair if the key does not exist. When the cache reaches its capacity, it should invalidate the least recently used item before inserting a new item.Example 1: Input: cache = LRUCache(2) cache.put(1, 1) cache.put(2, 2) cache.get(1) Output: 1 Explanation: The cache contains 1 and 2, and the value for key 1 is 1.Constraints: - 1 <= capacity <= 3000 - 0 <= key, value <= 10000
codingHardgraph
[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
codingHardsliding window
[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.