DoorDash logo

DoorDash Mobile Engineer Interview Questions

41 practice questions for DoorDash Mobile Engineer interviews

DoorDash mobile engineer interviews focus on iOS or Android platform knowledge, memory management, offline-first architecture, and mobile-specific system design.

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 Medium sliding window #1

1. [OA] Sliding Window — maximize the number of orders DoorDash can deliver in a given time frame

DoorDash relies on drivers to fulfill user orders on time while maximizing efficiency. We want to ensure that drivers can cover as many orders as possible within a certain time window.
Problem Statement: Given an array of integers representing the times taken to deliver each order and an integer t for the total time available, return the maximum number of orders that can be delivered in that time frame.
Example 1:
Input: orders = [2, 3, 1, 5, 4], t = 7
Output: 4
Explanation: The maximum number of orders within the time frame is 4 (taking 1+2+3+1 = 7).
Constraints:
- 1 <= orders.length <= 10000
- 1 <= orders[i] <= 1000
- 1 <= t <= 10000
coding Hard caching #2

2. [OA] LRU Cache — implement the caching layer DoorDash uses for its API responses

DoorDash calls various APIs to fetch restaurant data. To improve performance and reduce unnecessary network calls, we need an efficient LRU (Least Recently Used) caching mechanism.
Problem Statement: Implement an LRUCache class that supports the following operations:
- get(key: int) -> int: Returns the value of the key if the key exists in the cache, otherwise returns -1.
- put(key: int, value: int) -> None: Updates the value of the key if the key exists, otherwise adds the key-value pair to the cache. 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) # returns 1
cache.put(3, 3) # evicts key 2
cache.get(2) # returns -1 (not found)
Output:
1
-1
Constraints:
- 1 <= capacity <= 3000
- 0 <= key <= 10000
- 0 <= value <= 10000
system design Senior distributed systems #3

3. Design an Offline-first Sync Engine — a system to manage data synchronization for DoorDash's mobile application

To ensure that users can continue placing orders even when they are offline, DoorDash requires a robust data synchronization system that prioritizes data consistency and user experience, especially in areas with poor connectivity.
Problem Statement: Create an OfflineSyncEngine class that handles data synchronization between local user actions and the remote server.
- queueAction(action: UserAction): Queues a user action to be executed when the device goes online.
- sync(): Syncs all queued actions with the remote server.
- getPendingActions(): Returns all actions that are queued but not yet synced.
Example 1:
Input: queueAction(new UserAction('placeOrder', orderDetails))
Output: Action queued successfully
Constraints:
- The system must handle conflicts when syncing actions performed offline.
- Keep track of queued actions for resending if sync fails.
system design Senior api design #4

4. Design a Push Notification Manager — a system to handle real-time notifications in DoorDash's mobile app

As DoorDash generates various real-time events like order updates, the mobile app needs a way to efficiently deliver push notifications to users, enhancing user engagement and information delivery accuracy.
Problem Statement: Implement a PushNotificationManager class that handles the scheduling, sending, and managing of push notifications to users.
- sendNotification(userId: String, message: String): This method sends a notification to a specified user.
- scheduleNotification(userId: String, message: String, time: Date): This schedules a notification to be sent in the future.
- cancelScheduledNotification(notificationId: String): This cancels a previously scheduled notification.
Example 1:
Input: sendNotification('user1', 'Your order has been delivered!')
Output: Notification sent to user1
Constraints:
- The manager must scale to handle thousands of notifications per second.
- User can receive multiple notifications simultaneously.

Related DoorDash Mobile Engineer interview prep

Start practicing DoorDash questions

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

Get Started Free