DoorDash Interview Experience [Rejected]
Summary
I interviewed for a backend SDE-2 role at DoorDash, passed the technical screen but was rejected after the system design round.
Full Experience
Hello guys, I'm sharing my DoorDash interview experience to give back to the community.
Little background: I have 3.5 years of experience and am currently working at a top product-based startup. I applied for a backend SDE-2 equivalent role at DoorDash, and within a week I got an invite email for a recruiter connect.
Recruiter Connect
This was a Zoom call where the recruiter explained the job description and the teams available in India.
The recruiter was very humble and asked me about my experience and why I was interested in DoorDash.
Overall, the call went well. The recruiter told me that they were having an interview freeze due to Christmas and New Year and shared a calendar with me to select my availability for the technical screening round.
Tech Screen Round
The interviewer was from the US and was very humble. She asked me a coding problem related to coordinates. I used a hash map to store coordinates and binary search to find the nearest coordinate.
This round went well, and within 2 days I got a call from the recruiter saying that I had passed the round and they wanted to move forward with the virtual onsite.
I selected my availability, and they scheduled the onsite as a 2-day virtual interview.
- Day 1 (Tuesday): Bug Bash round and System Design round
- Day 2 (Next Monday): Coding round and Leadership round
I asked the recruiter if they could swap the system design round with the coding round, as I was already prepared for coding but needed more time for system design. However, the recruiter mentioned that it wasn't possible due to interviewer availability.
Anyway, I prepared for the system design round over the weekend and took Monday off to prepare.
Day 1
Bug Bash Round
The interviewer seemed humble. She asked me if I was comfortable with Java, which I said I was not. I mentioned that I was comfortable with JavaScript. She then told me that JavaScript was not available and asked if I was comfortable with Python, Go, or C++.
I said I knew C++, so I decided to give the round in C++ (as I didn't have many other options).
She shared a small codebase (luckily it was only using maps, no fancy STL) and asked me to run it and find bugs.
I struggled a little bit initially, but later I was able to spot and fix the bug.
Then she asked a couple of scaling-related questions and asked how I would scale the system. I mentioned using multithreading and discussed the approach briefly. She then asked if I could implement it. I told her that I hadn't brushed up on C++ threading recently and would need to look up syntax. She mentioned that it was fine, and we only discussed the solution at a high level.
Self Verdict: lean hire / no hire.
System Design and Domain Knowledge Round
There were two interviewers (one was shadowing). The main interviewer seemed fine to me. I personally expected a more senior interviewer for a system design round, but that's just my opinion.
The interviewer asked me to introduce myself, which I did in about 2-3 minutes. Then they directly started the round. He asked, "What's the most challenging problem you have solved?" I discussed one of the components I had worked on. They didn't ask many follow-up questions and seemed satisfied.
Then they asked a system design problem: Design a job scheduler.
I quickly wrote down functional and non-functional requirements and started defining APIs. After I had just finished my first API, the interviewer interrupted and said, "Let's skip this, I want to see the main design." I said "Cool" and started with the database schema.
I wrote one table schema and mentioned that I would start with the design and come back to add more tables when required. I then started drawing the high-level design. The interviewer interrupted again and asked whether one table was enough. I said probably not and that I would come back to it when needed.
As I continued with the design, the interviewer kept interrupting about missing tables. Toward the end, when I added them, he started asking questions about indexes, partition keys, and related topics. I took some time to discuss partition keys, and the interviewer gave me hints and said that this was what he was looking for.
They asked a couple of follow-up questions, which I answered. By the end of the round, both interviewers seemed satisfied, and there were no open follow-up questions.
Self Verdict: Hire / lean hire.
After this round, I got a call from the recruiter saying they wouldn't be moving forward and that my remaining two interviews would be canceled. I asked for feedback, but he mentioned that it was against their policy.
Overall, the interview experience was good. This was my first time appearing for a system design round.
I did feel bad about getting rejected, especially because I thought my system design round went well. That said, I wasn't too disappointed since I didn't particularly like the DoorDash teams in India, and the compensation wasn't very attractive for me.
My personal feedback for DoorDash:
- They should ask for language preference before scheduling the virtual onsite.
- System design rounds could benefit from being conducted by more senior engineers.
Interview Questions (1)
Design a Job Scheduler
Design a job scheduler system. Include functional requirements (e.g., submit jobs, query job status, cancel jobs), non‑functional requirements (scalability, reliability, low latency), API definitions, database schema, and discuss details such as indexes, partition keys, and how to handle scaling.
Preparation Tips
I prepared for the system design round over the weekend and took Monday off to prepare.