DoorDash powers food delivery for millions of people. To manage complexity for people and restaurants across 4000 cities—it needed efficient operations.
DoorDash is the nation’s largest last-mile logistics platform, connecting customers with their favorite local and national businesses in more than 4,000 cities and all 50 states across the United States, Canada, Puerto Rico, and Australia.
Successfully operating a delivery network is a daunting logistical challenge: customers, delivery people (“dashers”), and merchants all bring their own concerns and priorities to the table. Providing a top notch customer experience to all three requires a lot of tooling.
DoorDash’s engineering teams were responsible for building all of their own internal tooling; and as an operationally-heavy company, there was a lot to get done. Rohan Chopra runs engineering for the Dasher team – a group of engineers and operators responsible for the delivery person (“Dasher”) experience – and building internal tools for his team was tedious but critical: “these tools took months to build, but without them, our operators were completely blocked.” Building one off tools that would visualize a Dasher’s route, draw a region, or enable the team to work with restaurants was a manual, multiple month affair.
Rohan’s team first used Django’s admin panel, but faced immediate challenges: it wasn’t built to scale and lacked the customization they needed. “The admin page is not built to scale, it gave too much power to users, and it even took our site down a few times because of unanticipated huge queries.” The ORM generated inefficient queries that put a strain on DoorDash’s infrastructure, and required manual inputs to do basic things like setting a Dasher’s status to is_active.
One specific pain point was the Dasher team’s Dasher rewards program, where the DoorDash team rewards dashers for positive engagement and activity. Keeping the program operational required team members to fill out a massive spreadsheet manually, hand over the data to the engineering team, and run weekly scripts. This process fell apart frequently: mistyped data, missed handoffs, and uncaught errors required a bunch of time from both sides.
After finding Retool through searching the web, Rohan’s team began building their internal tools in Retool to save time and improve their processes. Engineers were able to build their new tools in hours and more effectively support their operations teams without the multi-week overhead. Retool’s granular user management and permissions also helped avoid the permissioning problems that the Django Admin came with.
After adoption from Rohan’s team, Retool spread naturally throughout the DoorDash organization. “We didn’t send an email about it or anything: whenever engineers would talk to each other about building internal tools, Retool would come up and new teams would try it.”
Retool cut the time it took for Rohan’s team to build internal tools dramatically: “we went from 1-2 months on each tool we needed to build to 30-60 minutes.” The build process for tools got much shorter, but maintenance was also significantly easier – small adjustments like adding a dropdown or a filter became “a few minutes” instead of “we’re not sure.” Manual work like running scripts and filling out spreadsheets was automated and scheduled instead of frustrated and forgotten.
DoorDash has 40+ active, operational tools built in Retool, and part of that is the democratization that Retool has enabled. Because DoorDash teams are responsible for building their own tools, some teams like the Supply and Demand team struggle because they’re backend engineer heavy. These teams lack the frontend experience to build full-featured tools from scratch; with Retool, they’re able to build full stack apps without relying on help from other teams.