Here's the whole process -
Recruiter reached out on linked in, had a call
Screening Round
60 minutes - 5 min Introduction, 45 Coding, 10 min Questions
Medium level LC related to string operations on anagram strings, with recursion
Asked a follow up which complicated the problem more and had to modify existing solution to accommodate it
Had a bug originally in first Q on running test cases, fixed it and passed all
Follow up code had a bug too and was failing one test case but didn't have time to fix
Onsite
Round 1
60 minute - 5 minute intro, 45 minute coding , 10 min Qs
Comparison between two trees to find some sort of difference, used DFS.
The question was a bit hard to understand so it ended up taking 5-10 minutes just to get the task right.
Also, had some small hiccup while writing code, I kept assuming that the tree was a binary tree, which it wasn't. Just so used to dealing with Binary Trees 90% of the time on leetcode! Try to make sure you dont make a wrong assumption like that
Got all test cases right in first run.
I really hope there wasn't meant to be a follow up
Round 2
60 minute - Chat with HM . 10 minute Intro 30 minute priciple Qs, 20 minute Qs
Questions are based on few fixed priciples that doordash has. The chat was pretty low stress and got to discuss a lot about the team I'm being considered for and overall DD environment.
Round 3
80 minutes - Domain knowledge and System design (not sure what the split was)
Deep dive into one specific project in your resume. I probably didn't pick the best project to discuss, since it needed a lot of domain specific knowledge but the interview was still able to ask really good questions to understand the design decisions made
Reservation system for system design. I need to practice being more concise here, we ran out of time pretty early into the discussion, barely had time to think about scalability
Round 4
60 minute - 5 minute intro, 45 minute coding , 10 min Qs
Tree based question to find some sort of path sum.
It wasn't the easiest problem to visualize but the interviewer let me know early on that there will be a follow up so I had to jump in into coding without completely setting up the logic.
Not sure if that was the best idea, there were some bugs in the code to start with.
Also ended up in a catastrophic situation - so far all coding interviews had the tests already written out and once you fill in a function, you just need to press Run. However this interview, there was no boilerplate code, the interview just gave a few lists to test the algo on. I made the dumbest mistake and entered the wrong value in the test case. So even though the algo did fine, since the test case expected answer was wrong, I ended up spending a long time debugging a bug that didnt exist.
Eventually we figured it out by adding several print statements but by then there were only 5 minutes left.
The follow up was a complication on top of this and I only had time to explain how I would attempt the question.
The last round really didn't go well and so my chances look slim. Will update if there's an offer!
Finally, doordash uses hackerrank, and compared to other tech companies, they expect the code to compile, run and pass test cases and debug if needed. That definitely adds into time a lot!
Also I went through all leetcode DD tagged questions, none of them had the ones I had to solve