Subscribe

DoorDash Engineering Blog

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

Subscribe for weekly updates

Subscribe
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 ...

Read More Raghav Ramesh
Mobile

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

Read More Rohan Shanbhag
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 ...

Read More Mitchell Koch
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 ...

Read More David Kastelman
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 ...

Read More Richard Hwang
Culture

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

Read More Millie Yang
Mobile

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

Read More 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. ...

Read More Aamir Manasawala
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 ...

Read More Jonathan Block
Mobile

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

Read More Rohan Shanbhag
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 ...

Read More Xilin Liu
Backend

Tips for Building High-Quality Django Apps at Scale

At DoorDash, most of our backend is currently based in Django and Python. The scrappy Django codebase from our early days has evolved and matured over the years as our business has grown. To continue to scale, we’ve also started to migrate our monolithic app towards a microservices architecture. We’ve learned a lot about what ...

Read More Alvin Chow

Sign up for updates

Thank you for subscribing!

Sign up for updates