Join Our Team

Backend

Backend Mobile

Improving Development Velocity with Generic, Server-Driven UI Components

Learn how Generic server driven UI enabled faster iterations and more experimentation on the DoorDash platform

Ashwin Kachhara Alice Hyun Afshin Dehghani
Backend Data

Building Faster Indexing with Apache Kafka and Elasticsearch

DoorDash describes how it built a faster search index using open source projects.

Satish Saley Danial Asif Siddharth Kumar
Backend Web

Leveraging the Pipeline Design Pattern to Modularize Recommendation Services

Learn how DoorDash engineers used a pipeline design pattern to make our recommendation page more efficient and flexible.

JoshZhu
Backend

Leveraging OpenTelemetry For Custom Context Propagation

Enabling custom content propagation allows our microservices architecture to take advantage of several powerful use-cases

Amit Gud
Backend Mobile Web

Overcoming Localization Challenges for International Expansions

DoorDash defined four key challenges to getting its platform ready for an international launch.

Noah Zempsky Ethan Myers Siddhartha Kakarla Winston Zhao Bryan Huang Xilin Liu
Backend Web

Rebuilding and Migrating a Session Management System with Zero Downtime

Migrating DoorDash's business-critical session management system in a disruption-free manner required careful planning and monitoring.

Sin Ko Li Pei
Backend

Migrating From Python to Kotlin for Our Backend Services

To support our migration to microservices we needed to find a new tech stack. Learn how we compared all the options and chose Kotlin

Matt Anger
Backend General

Gradual Code Releases Using an In-House Kubernetes Canary Controller

New service releases deployed into DoorDash’s microservice architecture immediately begin processing and serving their entire volume of production traffic. If one of those services is buggy, however, customers may have a degraded experience or the site may go down completely.  Although we currently have a traffic management solution under development for gradual service rollouts as ...

MarcoChirico
Backend General

Optimizing OpenTelemetry’s Span Processor for High Throughput and Low CPU Costs

When companies move to microservices, they need to address a new challenge of setting up distributed tracing to identify availability or performance issues throughout the platform. While various tools offered on the market or through open-source perform this task, there is often a lack of standardization, making leveraging these tools costly or complicated.  As DoorDash ...

Santosh Banda
Backend General

Examining Problematic Memory in C/C++ Applications with BPF, perf, and Memcheck

As applications grow in complexity, memory stability is often neglected, causing problems to appear over time. When applications experience consequences of problematic memory implementations, developers may find it difficult to pinpoint the root cause. While there are tools available that automate detecting memory issues, those tools often require re-running the application in special environments, resulting ...

Filip Busic
Backend

How to Make Kafka Consumer Compatible with Gevent in Python

Asynchronous task management using Gevent improves scalability and resource efficiency for distributed systems. However, using this tool with Kafka can be challenging.  At DoorDash, many services are Python-based, including the technologies RabbitMQ and Celery, which were central to our platform’s asynchronous task-queue system. We also leverage Gevent, a coroutine-based concurrency library, to further improve the ...

Jessica Zhao Boyang Wei
Backend Web

Serving Multiple Websites and Business Logic From a Single Platform

Building flexibility into the DoorDash platform lets us scale to serve a variety of retailers.

Daniel Shafer

Subscribe to our Eng blog for updates

Thank you for subscribing!

Sign up for updates