How DoorDash Engineers Are Building The Future of Logistics
(Cross-posted from Job Portraits, a site that highlights fast-growing startup teams. For the interview below, Job Portraits spoke with software engineers Kate Liu, Aju Scaria, and Abdul Nimeri, iOS Engineer Jeff Cosgriff, and CTO and Cofounder Andy Fang.)
Let’s start simple: What is DoorDash?
Jeff: At its core, DoorDash is a technology company. We are working to solve last-mile logistics by allowing local merchants to outsource delivery. We work with merchants in your community to deliver items from local stores directly to your door. Right now we are focused on food, but we plan to move into other spaces in the near future. We also work with a fleet of contractors who use our intelligent software to deliver goods efficiently and cheaply.
Does that make the world a better place? Or how do you think about your value?
Jeff: We’re serving a three-sided market, and we provide a different value to each side. For merchants, DoorDash provides a way to deliver goods and a new channel to acquire customers. For consumers, it’s a way to discover new shops in your neighborhood and it’s a huge time-saver; if you’re a busy parent, for example, it means spending more time with your family. For Dashers, we provide flexible work and meaningful pay.
What kinds of problems are the engineering team trying to solve on a daily basis?
Aju: With these three sets of users — consumers, merchants, and Dashers — it’s a constant question of where to focus our efforts to make the platform as efficient as possible. For instance, on the consumer side, we’re building machine learning algorithms to make restaurant recommendations based on a user’s past order history. For Dashers, we want to offer them nearby and efficiently sequenced orders, which keeps their number of deliveries — and therefore their pay — high. For busy merchants, we’re ensuring it’s very easy for them to manage and update their menus on our platform. We’re also building analytics tools so they can track important information, like their most popular items and number of orders, throughout the day.
On top of that, we have a dispatch system that predicts an item’s ETA. That alone is a fascinating and very important challenge. Let’s say we quote forty-five minutes for a delivery. We don’t want the delivery to be there at ninety minutes, but it also shouldn’t arrive at twenty minutes. Being spot-on is hard. Another big challenge is the delivery algorithm itself. How do we pair deliveries to a Dasher so we can make it efficient, and thus cheaper, but without degrading the customer experience?
Tell us a bit about what each of you is working on now.
Abdul: I work on supply and demand. Basically, I try to ensure DoorDash is matching the number of Dashers on the platform with the number of customers as efficiently as possible. If too few Dashers are using the platform at any given time, then we have to turn away customers. If too many Dashers are using the platform, some Dashers sit idle, which is a bad experience for them because they get paid based on how many deliveries they do.
“For every product decision, you’re balancing the needs of one side of the market with the other two.” –Jeff
Jeff: It’s challenging because, for every product decision, you’re balancing the needs of one side of the market with the other two.
Aju: I work on the growth team, and right now we’re focused on two challenges. One is, how do we continue to acquire customers and Dashers in a cost-effective way? The second problem is tackling online credit card fraud. It’s a huge machine learning problem that involves identifying suspicious behavior patterns and making sure we collect the correct information up-front.
Kate: I’m working on the Android Dasher application. These are people who are using the money from dashing to support their families and pay college tuitions, so we’re focused on improving the platform’s efficiency to maximize Dashers’ earnings.
Part of the challenge is to build a pay model that’s flexible enough to serve different markets. Each of our twenty-four markets is unique. For instance, San Francisco is dense and the traffic is bad, but somewhere like Indianapolis, travel distances are longer and traffic is lighter.
Why did you say “yes” to working at DoorDash?
Aju: Before I joined, I was working at Google. I wanted to transition to a smaller company and a team that’s focused on solving one big problem. This is a place where I feel like my opinion gets heard and there are a lot of interesting problems to solve. And everyone can see how, when you solve each small piece, that impacts the main problem.
I was also excited about DoorDash’s potential for growth. When I joined we were in five or six markets — today we’re in twenty-four — and we haven’t reached even one percent of where we want to be. We’re still building some of the key components of the business. I like being part of the team that’s deciding the path for the future of the company.
Abdul: Before DoorDash, I was an intern at a large tech company. New hires go through an orientation day there, which is full of old war stories about tackling these huge, fascinating problems. But once I started working there, I realized they were talking about things that happened in the past. It made me realize that every company has a golden age. This is DoorDash’s golden age.
“It made me realize that every company has a golden age. This is DoorDash’s golden age.” –Abdul
There are things I’ve learned here that there’s no way I would have learned at a big company, just because I wouldn’t have needed to. I’ve gained a lot of fundamental experience by building things from the ground up. At a big company, things are already built out for you and decisions have been made to safeguard you from making mistakes you didn’t even know you could make. But here, we just make them, and then we fix them. I think it’s a really valuable learning experience. And it’s fun.
Tell us about some of the specific things you are learning here.
Aju: I remember one day Andy asked me if I wanted to work on this internationalization project to launch our first markets in Canada. I asked him, “What do I need to do?” and he said, “We have a list of things that are potentially required, but there could be other things we don’t know about yet.” I had only been at the company for four months, but I said, “Okay, let me try this out.” I really didn’t know much about what I had to do, but I knew there were lots of people I could ask for help.
I’ve learned so much about the way DoorDash does things that, now, if you put me on any team, I’m pretty confident I can do whatever it takes. There are a lot of unknowns when you start working on new things. You have to get outside your comfort zone sometimes in order to grow, which you wouldn’t do in other companies.
What happens when something breaks? How do you deal with mistakes?
Aju: If something goes wrong, people remain calm. As a startup, we need to move fast, and sometimes that means taking healthy risks. You don’t want to be like one of those big companies that puts all of these processes in place and only deploys at 11 p.m., when nobody is using the site.
When something goes wrong here, the first thing is to fix it. Then we have a post-mortem to figure out why it happened. We make sure we learn something from the experience, and then we communicate with each other so it doesn’t happen again. Every mistake is a stepping stone. I don’t think I’ve ever seen us make the same mistake twice.
We know employees are encouraged to go on dashes or work support as a way to better understand how consumers and dashers use your products. Are you regularly interacting with users in other ways, too?
Kate: Absolutely. On the Dasher product side, we have a continuous feedback loop with Dashers. We ask, “How was your last Dashing experience? What features can we add to make your life easier? How can the DoorDash Support Team help you more?” They often share their personal stories, which is really touching and makes our work even more impactful. For example, last week we interviewed someone who is a stay-at-home dad that heard about DoorDash from his friend and tried it out. He really liked it because of the flexibility, and it helped him pay some bills.
Let’s talk about your stack. Any fun technologies you’re working with?
Abdul: At least on the frontend, I can tell you that our product stack is incredibly hipster.
Because they are all so new?
Abdul: I mean, they work. It’s just that not that many people use them yet. There are obviously questions, like what if somebody stops supporting it. But because there are only four or five of us on the frontend team and we have a ton of autonomy, there’s no one looking over our shoulder, stopping us from doing things we think are cool.
“There’s no one looking over our shoulder, stopping us from doing things we think are cool.” –Abdul
We iterate very quickly and we swap things out all the time. We try architecture decisions, and then two months later we’re like, “Uh, never mind, it’s not going to work out that way, let’s try a new app that looks better.” It’s very bleeding edge. For a lot of people that’s really fun, and we certainly enjoy it.
How is engineering organized?
Andy: We have groups with different focuses, which we call pods. There’s a pod for each side of the marketplace: Dashers, merchants, and customers, as well as for the dispatch (our intelligent algorithm), infrastructure, and growth. There’s also a lot of work around exploring opportunities beyond what we’re doing now.
Speaking of new opportunities, where is DoorDash headed and how will that impact engineering?
Andy: DoorDash is growing very quickly. Last year we grew faster than we did the year before. If you think about it, that’s rare, because you’re growing off a base that’s significantly larger. This year we’re trying to build on that momentum and take a big step forward in terms of our position in the logistics space. If you join our team now, you’ll be able to jump right in and make a huge impact.
As an engineer, there are lots of opportunities to explore things outside your comfort zone and to stretch your limits. Whether you’re tackling problems you haven’t seen before, exploring cutting-edge technologies, or figuring out how to scale an organization, these experiences are the foundation of a long career in technology. It’s rare you get to work at a company where you’re part of scaling it out, not just on the backend but on the organizational side as well.
Let’s talk about the competition — there seems to be plenty. Why do you believe DoorDash can win in this space?
Andy: There are definitely a lot of companies working on last-mile delivery. Businesses in the space are commonly thought of as operations plays. But our approach is to put technology first, in the sense that we leverage software not just so people can order from us, but as a way to fundamentally change how delivery operations can work. This lets us scale differently because we can spin up new product ideas very quickly.
It’s also important to execute well, and not very many companies have been able to do that. I think it’s rare to find a team like ours, which has been able to build and execute the technology. This stems, in part, from the fact that we always said that we’re not a food company — we’re a logistics company. That’s affected a lot of the decisions we’ve made from day one.
“We always said that we’re not a food company — we’re a logistics company.” –Andy
For example, if you think about how the ride-sharing model works, when I request a ride as a passenger, that gets broadcast out locally to drivers near me, and the first one to claim me gets to pick me up. We could have easily done that with delivery. A lot of delivery companies do that. But that model doesn’t work very well if you think about how food delivery works. If I’m a driver and I’m the closest person to a merchant, that doesn’t mean I’m the best person to pick up that order, because I may show up too early and have to wait thirty minutes while the order is prepared.
Another difference is that Dashers may deliver multiple orders at the same time. How do you offer those deliveries to drivers in a way that makes sense? Early on, we knew we would have to build a dispatch technology that sees everything from a bird’s-eye view and helps Dashers make the best decisions. That’s a core decision we made in the beginning, which allowed us to scale our logistics side very quickly.
Can you tell us more about why the logistics around food delivery is so hard?
Andy: It’s crazy. First, we have to quote expectations on when your order’s going to get there before you even place an order. There’s a lot that goes into that: Which Dasher will pick up your order, and will they have other orders to pick up? What’s traffic going to look like? How long will it take a merchant to prepare the order? It’s very tricky to promise to deliver something within forty-five minutes with all these unknown variables.
Also, people just have an incredibly personal relationship to food. If I’m delivering a package, I can say that it’s going to arrive tomorrow between five and eight. But if I say your dinner is going to arrive between five and eight, I don’t think you’d use our service.
Who is your ideal team member? How do they think?
Aju: I think one of the important things I look for is, can the person see opportunities in things that other people take for granted? Let’s say I know one specific aspect of machine learning, but there’s some other problem somewhere else. I want someone who will say, “Let me also take a look at that. If I can solve it efficiently, maybe that could really help the company.” At this point in time, everything that we do could be making or breaking the company. The things we can get right today will make DoorDash successful in the future. So it’s more about hiring for potential than just looking at what someone has done before.
What’s been the most challenging thing about working at DoorDash? Are there some people who might not enjoy it here?
Aju: It’s important that people understand the decision-making process here; it’s very open. It’s not just one person who says, “Okay, this is what we’re doing.” We talk about why we’re doing things. At DoorDash, I’ve never seen a situation where you don’t know why something is done a certain way. If you strongly think something is wrong, you are encouraged to try to convince others to change. But that’s only possible because there’s flexibility and openness.
Also, people need to understand the momentum we are trying to keep up. Employees at a large, established company might leave at five o’clock, irrespective of whatever is happening. That won’t work here. We might have to work a little later in the day. We’re not expecting people to do it every day, but the understanding is that we’re a really small company with a lot of challenging problems that we need to solve.
It’s more about, “What do you think you can get out of DoorDash?” If you’re open to learning, once you have an understanding of the issues, you should want to just jump in and start solving things.
Is there anything else you would want a candidate to know, if they’re considering working here?
Abdul: Like at many small companies, you have to be willing to do the dirty work here. Just the other day, for example, I had to change a bunch of HTML for FAQs. If you were working at a bigger company, there’s no way you would have an engineer making changes to copy. But we don’t have specialized roles for everything. Sometimes you’re going to have to write your own rollout email because there’s nobody else to do it, or because your PM is out for the day. You can’t just be like, “No! I’m an engineer! I’m here to write code!” Your responsibility is to help the company succeed however you can.