DoorDash | Staff Software Engineer | Feb 2024 | Virtual Onsite
Summary
I interviewed with DoorDash for a Staff Software Engineer role in February 2024, completing a phone screen and four virtual onsite rounds covering data structures, algorithms, system design, and behavioral questions. Despite largely performing well, I was ultimately rejected due to failing to solve a specific follow-up question, which left me feeling incredibly disheartened.
Full Experience
Phone Screen
My interview journey with DoorDash for a Staff Software Engineer position began in February 2024 with a phone screen. The problem presented was a variation on the LeetCode problem 'Swim in Rising Water'. I managed to successfully navigate this round.
Virtual Onsite
Round 1: Data Structures & Algorithms
The first onsite round involved a problem asking for the maximum path sum, with the specific constraint that the path must connect only leaf nodes. I chose an iterative approach, as I often find formulating recursive solutions challenging. Although my iterative code was about twice the length, it passed all test cases. The interviewer then posed a follow-up: evaluating the path between any two 'active' nodes, where nodes would be flagged as active during creation. Unfortunately, I was unable to solve this follow-up question correctly.
Round 2: Data Structures & Algorithms
The second round featured a problem conceptually similar to 'Making A Large Island'. I initially solved it correctly using a Breadth-First Search (BFS) approach. The interviewer then requested a Depth-First Search (DFS) solution, which I also provided successfully.
Round 3: System Design
This round was focused on designing an online coding platform. I made sure to clarify all requirements thoroughly, discussed various tradeoffs, and maintained clear communication throughout the design process. I was pleasantly surprised when the interviewer expressed satisfaction with my design and commended my approach at the end, which gave me a nice confidence boost.
Round 4: Behavioral
The final round was a behavioral interview, primarily using the STAR (Situation, Task, Action, Result) pattern. It turned out to be a very engaging conversation, largely because the manager had extensive prior experience in my specific domain and showed genuine interest in my background and career path.
Result & Reflection
Despite my efforts, I received a rejection. The feedback explicitly mentioned the follow-up question from Round 1 that I couldn't solve, which was incredibly frustrating. It feels truly disheartening that one challenging follow-up question can negate weeks of intense preparation and effort.
As an average software engineer, I've consistently found interviews to be tough, regardless of how much I prepare. Over the last decade, I've interviewed with 67 different companies and only managed to succeed three times. My current job situation, marked by unfulfilled promises and a difficult work environment, combined with the pressures of family responsibilities, makes this ongoing job search particularly grueling. I'm also on a visa, which limits my options. A recent disappointing performance review without a raise was the final straw that propelled me back into intense interview preparation. My nights and weekends have blurred into endless study, and my social life has vanished. However, I am not giving up until I find a better opportunity; I strongly believe I deserve more, and my hard work will eventually pay off.
Interview Questions (6)
A coding problem similar to LeetCode's 'Swim in Rising Water' but featuring a slight, unspecified twist on the original problem statement. (Specific twist not detailed.)
Given a tree or graph structure, find the maximum path sum where the path is strictly confined to connecting only leaf nodes.
As a follow-up to the 'Max Path Sum with Leaf Nodes Only' problem: given a graph where certain nodes are designated as 'active' (indicated by a flag passed during node creation), evaluate the path between any two active nodes.
A problem similar to LeetCode's 'Making A Large Island' (Problem 827), where the objective is to change a single '0' to a '1' in a grid of 0s and 1s to connect existing islands, thereby creating the largest possible island.
Design a scalable and robust online platform for coding. This involves considerations for core functionalities such as code editing, compilation/execution, real-time collaboration, user management, and system architecture. The specific scope and features would need to be clarified with the interviewer during the discussion.
Standard behavioral interview questions designed to assess past experiences and competencies, typically requiring answers structured using the STAR (Situation, Task, Action, Result) method.
Preparation Tips
Despite a long history of struggling with interviews and significant family responsibilities, I dedicated myself to rigorous interview preparation. This involved sacrificing my nights and weekends to studying, which severely impacted my social life. My commitment was driven by a recent disappointing performance review and a strong belief that my persistent hard work will ultimately lead to a better opportunity.