DoorDash Engineering Blog

Learn about high impact projects that power our velocity, reliability, and innovation.

Subscribe for weekly updates


Avoiding Cache Stampede at DoorDash

One of the core mottoes on the engineering team at DoorDash is: We are only as good as our next delivery! With high traffic loads and orders flying in, every engineering decision has a critical impact on what our customers, merchants, and dashers will experience. We have to pay careful attention to the details and ...

Zohaib Sibte Hassan
Machine Learning

How Artificial Intelligence Powers Logistics at DoorDash

In May, DoorDash participated at the O’Reilly Artificial Intelligence Conference in New York where I presented on “How DoorDash leverages AI in its logistics engine.” In this post, I walk you through the core logistics problem at DoorDash and describe how we use Artificial Intelligence (AI) in our logistics engine. LAST-MILE LOGISTICS IN A THREE-SIDED ...

Raghav Ramesh

Synchronizing Network Calls With RxJava

By Rohan Shanbhag and Wei Lin, Software Engineers Most Android apps rely on network calls to a set of backend services. As an app grows, so does the complexity of network calls and data operations. Networking libraries like Retrofit and Volley provide all the functionality needed for basic API calls. However, for threading and sequencing of events beyond a ...

Rohan Shanbhag Wei Lin
Machine Learning

Personalized Store Feed with Vector Embeddings

Customers come to DoorDash to discover and order from a vast selection of their favorite stores, so it is important to be able to surface what is most relevant to them. In a previous article, Powering Search & Recommendations at DoorDash, we discussed how we built our initial personalized search and discovery experience to surface the ...

Mitchell Koch Aamir Manasawala
Machine Learning

Switchback Tests and Randomized Experimentation Under Network Effects at DoorDash

To A/B or not to A/B, that is the question Overview On the Dispatch team at DoorDash, we use simulation, empirical observation, and experimentation to make progress towards our goals; however, given the systemic nature of many of our products, simple A/B tests are often ineffective due to network effects. To be able to experiment ...

David Kastelman Raghav Ramesh
Backend Web

How we Designed Road Distances in DoorDash Search

By Richard Hwang and Aamir Manasawala, Software Engineers One of our goals at DoorDash is to surface to consumers a wide range of stores that are quickly deliverable to their given address. This process involves calculating accurate road distances for each store-consumer pair in our real-time search pipeline. Our earlier blog post about recommendations for search primarily ...

Richard Hwang Aamir Manasawala

Dashing into my Software Engineering Internship Experience

As I scurry to Little Star Pizza without breaking a sweat, I ask for Anna’s delivery and pride myself on finally tackling that New Year’s resolution of staying fit. Welcome to my first day at DoorDash, where my first task as a Software Engineering Intern was to learn our technology by delivering food. I love ...

Millie Yang

Tips and Tricks for Migrating from Swift 2 to Swift 3

At DoorDash we recently migrated the codebase of our iOS Consumer and Dasher apps to Swift 3 from Swift 2. We decided to migrate the codebase after XCode 8.3 was released in March, which ended support for Swift 2.3. The newest versions of many third party libraries used by our apps are written in Swift ...

James Chiang
Machine Learning

Powering Search & Recommendations at DoorDash

Customers across North America come to DoorDash to discover and order from a vast selection of their favorite stores. Our mission is to surface the best stores for our consumers based on their personal preferences. However, the notion of “best stores” for a consumer varies widely based on their diet, taste, budget, and other preferences. ...

Aamir Manasawala Mitchell Koch
Backend General

Integrating GitHub with Jenkins for Continuous Integration and Deployment

When an engineer at DoorDash opens a GitHub pull request, our goal is to quickly and automatically provide information about code health. GitHub’s status API compliments GitHub webhooks, which allow you to trigger custom routines as events fire in your GitHub account. When developers push to our largest repo, they see something like this at the bottom of ...

Jonathan Block

Using Automated Testing to Scale Android Development with a Growing Team

At DoorDash, mobile is an integral part of our end user experience. Consumers, Dashers, and merchants rely on our mobile apps every day for delivery. And our Android team moves fast to ship impactful features that improve the user experience and the efficiency of our platform. In the past, we verified the functionality of our ...

Rohan Shanbhag Thomas Belluscio
General Mobile

Making Deliveries More Accurate with Improved Location Information

As a DoorDash customer, you should always know where your order is in the delivery journey. Whether the Dasher is on the way to the restaurant, waiting for your food, or nearing your location, the DoorDash app keeps you up to date every step of the way. In the past, we’ve typically used GPS information ...

Xilin Liu

Sign up for updates

Thank you for subscribing!

Sign up for updates