DoorDash Data Analyst Interview Preparation Guide - Mid Level
DoorDash's Data Analyst interview process for mid-level candidates consists of an initial recruiter screening followed by technical phone assessments in SQL and statistics, an analytics exercise, and a full-day virtual onsite with multiple case study interviews and behavioral assessments. The process emphasizes practical SQL skills, analytics methodology, business impact thinking, and cultural fit with DoorDash's fast-paced, data-driven environment.
Interview Rounds
Recruiter Screening
What to Expect
Initial conversation with DoorDash recruiter to assess background fit, motivation, and logistics. This is a combined initial screening and follow-up call where the recruiter will verify your interest in the role, confirm your experience aligns with the job description, discuss compensation expectations, and assess cultural fit. Expect a conversational tone; this is your opportunity to demonstrate passion for DoorDash's mission and the data analytics role.
Tips & Advice
Research DoorDash's business model, recent news, and company values before the call. Prepare a clear 30-second pitch on why you're excited about this role and DoorDash specifically. Connect your past experience to how it prepares you for this position. Be honest about salary expectations and availability. Ask thoughtful questions about the team structure, current projects, and growth opportunities. Show genuine enthusiasm for logistics, local commerce, or data-driven decision-making—whatever aligns with your authentic motivation.
Focus Topics
Availability and Logistics
Confirm your availability for upcoming interview rounds, potential start date, and any scheduling constraints. Discuss compensation expectations openly.
Practice Interview
Study Questions
Technical Proficiency Overview
Brief summary of your SQL, Python, Excel, and data visualization tool experience. Mention any statistical analysis or A/B testing background.
Practice Interview
Study Questions
Motivation for DoorDash and the Data Analyst Role
Articulate why you're interested in DoorDash specifically (mission, products, data challenges) and why this data analyst position appeals to you over other opportunities.
Practice Interview
Study Questions
Background and Experience Summary
Concise overview of your relevant work experience, key accomplishments, and data analysis projects. Focus on projects with quantifiable impact and business relevance.
Practice Interview
Study Questions
SQL and Statistics Phone Assessment
What to Expect
A 30-minute technical assessment conducted via phone or video call where you'll solve SQL problems and answer basic statistics questions. You'll be given sample DoorDash database tables (orders, customers, dashers, etc.) and asked to write queries to retrieve and analyze data. This round tests your ability to manipulate data efficiently, join tables, aggregate results, and apply basic statistical thinking to real business scenarios. You may be asked to write the query in a shared document or code editor.
Tips & Advice
Practice SQL queries on platforms like LeetCode or DataLemur, focusing on real DoorDash scenarios (order counts, revenue calculations, user retention). Aim to solve queries in under 20 minutes to leave time for discussion. Write clear, readable queries with proper indentation and comments. Be prepared to explain your logic and optimize if asked. For statistics, brush up on hypothesis testing, Type I/II errors, confidence intervals, and basic regression concepts. If you get stuck on a query, think out loud—interviewers appreciate your problem-solving process.
Focus Topics
DoorDash Data Context and Common Queries
Familiarity with typical DoorDash business metrics and data structures: order count, revenue, average order value, user retention, Dasher reliability, delivery times. Practice writing queries for these common business questions.
Practice Interview
Study Questions
Statistics and Hypothesis Testing Fundamentals
Concepts including Type I/II errors, p-values, confidence intervals, and basic hypothesis testing framework. Understanding when and how to apply statistical methods to real business questions.
Practice Interview
Study Questions
SQL Query Optimization and Performance
Understanding of query execution plans, indexing concepts, and techniques to write efficient queries that run quickly on large datasets. Ability to recognize and avoid slow patterns like excessive subqueries or cartesian products.
Practice Interview
Study Questions
Advanced SQL: Joins, Window Functions, and CTEs
Complex query patterns including INNER/LEFT/RIGHT/FULL OUTER joins, window functions (ROW_NUMBER, RANK, LAG, LEAD), and Common Table Expressions (CTEs) using WITH clauses. These skills are essential for handling multi-table data and time-series analysis.
Practice Interview
Study Questions
SQL Fundamentals for Data Analysis
Core SQL skills including SELECT, WHERE, GROUP BY, ORDER BY, aggregate functions (SUM, COUNT, AVG), and HAVING clauses. Focus on writing correct and efficient queries to retrieve and transform data.
Practice Interview
Study Questions
Analytics Exercise and Case Study Assessment
What to Expect
In this round, you'll receive a realistic analytics problem or case study, often asynchronously, where you'll need to: (1) Analyze provided datasets or business scenario, (2) Identify trends and patterns, (3) Draw actionable insights, and (4) Present your findings in a clear summary or slide deck. The prompt might ask you to evaluate experiment outcomes, identify trends in Dasher reliability, analyze customer cohorts, or measure product success metrics. You'll have a few hours to complete the analysis and present your thinking. This tests your end-to-end analytics capability, business judgment, and communication skills.
Tips & Advice
Start by clearly defining the business question and the metrics you'll use to answer it. Break down the problem into manageable pieces. Use clear visualizations and focus on actionable insights rather than technical complexity. When presenting findings, follow a narrative arc: problem statement, data approach, key findings, obstacles/limitations, and business recommendations. Practice explaining why your recommendation matters for DoorDash specifically (e.g., how it impacts delivery reliability or customer retention). Be concise but thorough. If you're unsure about data quality or missing information, call it out and explain how you'd handle it.
Focus Topics
Data Quality and Handling Incomplete or Noisy Data
Recognizing data quality issues, documenting assumptions, acknowledging limitations, and proposing robust analysis approaches when data is imperfect. Building confidence in recommendations despite uncertainty.
Practice Interview
Study Questions
Presentation and Communication to Non-Technical Stakeholders
Ability to present analysis findings clearly, using visualizations effectively, avoiding jargon, and tailoring explanations for business audiences. Making insights accessible and compelling.
Practice Interview
Study Questions
A/B Testing and Experimentation Analysis
Understanding experimental design, statistical significance, how to interpret A/B test results, and communicate conclusions about product features or business initiatives.
Practice Interview
Study Questions
Metric Definition and Selection
Ability to define appropriate metrics for business questions, choose between leading vs. lagging indicators, and understand nuances of different KPIs relevant to DoorDash (orders, revenue, retention, NPS, delivery time, Dasher reliability).
Practice Interview
Study Questions
Data-Driven Analysis and Trend Identification
Systematic approach to analyzing historical data, segmenting customers or orders, identifying trends over time, and spotting anomalies or opportunities for improvement.
Practice Interview
Study Questions
Actionable Insights and Business Recommendations
Translating data findings into concrete, business-relevant recommendations. Understanding trade-offs between options, considering implementation feasibility, and tying insights to business goals.
Practice Interview
Study Questions
Onsite Case Study Interview 1: Product Metrics and Funnel Analysis
What to Expect
First of three 45-minute case study interviews during the virtual onsite. In this session, you'll dive deep into DoorDash product metrics and user behavior funnels. The interviewer might ask: 'How would you determine if a new feature has improved user engagement?' or 'Analyze the order funnel and identify where users are dropping off.' You'll be expected to clarify the business question, propose metrics to measure success, outline a data analysis approach, and discuss potential confounding factors or limitations. This evaluates your ability to think systematically about product impact and use data to drive product decisions.
Tips & Advice
Ask clarifying questions first: What product feature? What's the baseline? What's the time horizon? Define success metrics clearly (engagement could mean orders, frequency, retention—clarify). Outline your analysis step-by-step: data sources, segmentation strategy, control vs. treatment groups if applicable, time periods to compare. Discuss potential biases or confounds (seasonality, marketing changes, etc.) and how you'd isolate the feature's impact. If you propose an A/B test, explain the statistical design. Keep the discussion grounded in DoorDash's specific business context. Show that you can think like a product partner, not just a data analyst.
Focus Topics
Communicating Analysis to Product Partners
Presenting findings in a way that resonates with product managers and executives. Highlighting business impact, trade-offs, and next steps. Being collaborative and asking clarifying questions to understand what decision-makers need.
Practice Interview
Study Questions
Segmentation and Cohort Analysis
Breaking down users or orders into meaningful segments (new vs. repeat customers, geography, cuisine type, time of day) and analyzing metrics by segment. Understanding when segmentation reveals important patterns.
Practice Interview
Study Questions
Funnel Analysis and User Journey Decomposition
Technique for breaking down user journeys into sequential steps (browse, add to cart, checkout, confirm, etc.), measuring conversion at each step, and identifying drop-off points. Using funnel analysis to spot optimization opportunities.
Practice Interview
Study Questions
DoorDash Product Metrics and KPIs
Deep understanding of key DoorDash metrics: order count, revenue, average order value, customer retention, repeat order rate, delivery time, Dasher utilization, marketplace health indicators. Ability to reason about which metric matters for different business scenarios.
Practice Interview
Study Questions
Feature Impact Assessment and Experimental Thinking
Methodology for evaluating whether a new product feature, UI change, or business initiative has caused a measurable impact on metrics. Understanding causal inference, controlled experiments, and when to use observational data vs. experiments.
Practice Interview
Study Questions
Onsite Case Study Interview 2: Business Problem Solving and Data-Driven Strategy
What to Expect
Second of three 45-minute case study interviews. This round focuses on your ability to tackle open-ended business problems with data. You might be asked: 'Which U.S. cities should we prioritize for expansion?' or 'How do we reduce Dasher churn?' or 'Identify opportunities to increase restaurant partner profitability.' These questions require you to break down complex business challenges, propose analytical approaches, identify data gaps, suggest metrics to track success, and synthesize findings into strategic recommendations. This evaluates your ability to think beyond dashboards and contribute to strategy discussions.
Tips & Advice
Start by clarifying the business objective and current state. Ask about constraints (budget, timeline, competitive landscape). Propose a structured analytical approach: define success metrics, outline data sources and analysis plan, discuss potential obstacles. Think about how different segments (cities, customer types, restaurants) might differ—use segmentation to surface insights. Propose trade-offs (speed vs. profitability, growth vs. retention, etc.) and discuss how you'd prioritize. Tie everything back to DoorDash's business model and mission. Show that you understand the broader ecosystem (dashers, merchants, customers) and can balance multiple stakeholder needs. Be pragmatic: suggest quick wins AND longer-term strategic opportunities.
Focus Topics
Handling Incomplete Data and Uncertainty in Strategic Decisions
Approaches for making recommendations when data is limited, uncertain, or evolving. Communicating confidence levels, proposing sensitivities/scenarios, and building decision frameworks despite imperfect information.
Practice Interview
Study Questions
Trade-Off Analysis and Business Impact Prioritization
Framework for evaluating competing initiatives, estimating business impact of different options, considering risk and feasibility, and making recommendations that balance growth, profitability, and strategic goals.
Practice Interview
Study Questions
Cohort Retention and Churn Analysis
Methods for measuring user/partner retention, identifying cohorts at risk of churn, analyzing churn drivers, and proposing interventions. Understanding lifetime value and payback period.
Practice Interview
Study Questions
DoorDash Ecosystem and Marketplace Dynamics
Understanding the three-sided marketplace: customers, dashers (delivery drivers), and merchants (restaurants/retail). How DoorDash creates value for each. Economics of each participant. How changes in one side affect others.
Practice Interview
Study Questions
Market Expansion and Geographic Analysis
Techniques for evaluating market expansion opportunities using data: market size estimation, competitive analysis, growth potential, customer acquisition cost, profitability by geography, and ranking cities by opportunity.
Practice Interview
Study Questions
Business Problem Decomposition and Scoping
Ability to break down ambiguous business questions into measurable components, identify key variables and levers, scope the analysis appropriately, and define success criteria.
Practice Interview
Study Questions
Onsite Case Study Interview 3: Data-Driven Decision Making and Analytics Storytelling
What to Expect
Third of three 45-minute case study interviews. This round emphasizes your ability to tell a compelling data story and guide decision-making with incomplete or noisy information. You might be asked: 'How would you analyze customer satisfaction given limited survey responses?' or 'A metric has changed unexpectedly—what's your approach to investigating?' or 'How would you measure the impact of a pricing change?' This evaluates your maturity in handling real-world data challenges, making trade-offs between perfect analysis and quick actionability, and building organizational confidence in your recommendations despite uncertainty.
Tips & Advice
Acknowledge the limitations upfront. Propose a tiered approach: quick wins using available data, plus longer-term robust analysis. Discuss multiple methods for triangulating insights when direct measurement is hard (e.g., inferring satisfaction from behavioral metrics if surveys are sparse). Explain how you'd communicate uncertainty to stakeholders—use ranges, scenarios, or confidence levels. Show bias toward action: propose interim recommendations that can start moving the needle while you gather better data. Demonstrate intellectual humility—acknowledge what you don't know and propose ways to learn. This is where you show you can thrive in DoorDash's 'bias for action' culture.
Focus Topics
Managing Stakeholder Expectations and Building Trust
Communicating confidence levels, caveats, and limitations honestly. Setting expectations for what data can and cannot answer. Over-delivery on communication builds credibility.
Practice Interview
Study Questions
Anomaly Detection and Root Cause Analysis
Systematic approach to investigating unexpected metric changes. Techniques for isolating root causes, considering multiple hypotheses, and testing them with data. Understanding common explanations (data errors, external factors, real changes).
Practice Interview
Study Questions
Customer Satisfaction and Experience Measurement
Methods for measuring customer satisfaction despite imperfect feedback: combining survey data, behavioral signals (retention, repeat orders, ratings), and inference. Balancing directness with feasibility.
Practice Interview
Study Questions
Storytelling and Stakeholder Communication in Data Analysis
Ability to structure findings into a narrative: hypothesis, data journey, key insights, limitations, implications, and next steps. Tailoring message for different audiences. Using visuals to enhance understanding.
Practice Interview
Study Questions
Bias for Action and Pragmatic Analysis
Balancing analytical rigor with speed. Knowing when to ship analysis good enough to act on vs. when to wait for perfect data. Proposing incremental steps and learning as you go. This is core to DoorDash culture.
Practice Interview
Study Questions
Advanced Data Quality Issues and Imputation Strategies
Techniques for dealing with missing data, data gaps, inconsistencies, or errors. Methods like imputation, triangulation across data sources, and sensitivity analysis. Knowing when to exclude data vs. work around gaps.
Practice Interview
Study Questions
Onsite Behavioral Interview: Collaboration, Growth, and Cultural Fit
What to Expect
Final interview of the day, lasting 45-60 minutes, conducted with a team lead, peer, or manager. This round assesses cultural fit, collaboration skills, growth mindset, and alignment with DoorDash values. You'll be asked behavioral questions about your past experiences: handling disagreements with teammates, managing multiple priorities, receiving feedback, supporting teammates, and driving projects to completion. The interviewer also wants to understand your curiosity, learning velocity, and fit within the DoorDash data team culture. This is a mutual assessment—use it to evaluate whether you'd thrive here.
Tips & Advice
Use the STAR method (Situation, Task, Action, Result) for behavioral questions. Prepare 5-7 concrete examples showcasing: collaboration and teamwork, handling conflict constructively, learning from mistakes or feedback, taking initiative, and contributing to team success. Emphasize your role specifically, not just the team outcome. For each story, highlight what you learned. Be genuine—DoorDash values authenticity. Ask thoughtful questions about the team, projects, and growth opportunities. Show genuine curiosity about how data drives DoorDash's decisions. Close by reiterating your enthusiasm for joining the team.
Focus Topics
DoorDash Values and Mission Alignment
Demonstrating understanding of DoorDash's values ('one team, one fight,' 'bias for action,' empowering local commerce) and how your work style aligns. Showing genuine excitement about the mission.
Practice Interview
Study Questions
Receiving Feedback and Continuous Improvement
Example of receiving critical feedback and how you responded. Demonstrating openness to growth, implementing suggestions, and following up to show improvement. Growth mindset.
Practice Interview
Study Questions
Learning Agility and Intellectual Curiosity
Examples of quickly learning new tools, domains, or methodologies. Demonstrating intellectual curiosity and proactive growth. Showing enthusiasm for expanding your skill set.
Practice Interview
Study Questions
Ownership and End-to-End Project Completion
Example of owning an end-to-end project, overcoming obstacles, and delivering results. At mid-level, you should be taking ownership of meaningful work independently, not just supporting others.
Practice Interview
Study Questions
Handling Disagreement and Resolving Conflicts Constructively
Specific example of disagreeing with a teammate (e.g., on an analytical approach, priority, or interpretation) and how you resolved it. Showing respect, openness to other perspectives, and finding the best solution for the team.
Practice Interview
Study Questions
Cross-Functional Collaboration and Stakeholder Partnership
Examples of working effectively with product managers, engineers, business teams, or operations. Demonstrating ability to listen, understand different perspectives, and find win-win solutions. Being a trusted partner, not just a service provider.
Practice Interview
Study Questions
Frequently Asked Data Analyst Interview Questions
You suspect a colleague's report has a hidden bias from how the data was sampled, and it's already circulating with stakeholders. How do you raise that in a way that leads to a joint investigation rather than putting them on the defensive?
Sample Answer
Direct answer
Go to the colleague privately first, before doing anything more public, and frame the concern as a question about the sampling method rather than a conclusion about their competence. Bring the specific evidence, propose a joint, falsifiable check that would settle whether the bias is real, and only then decide together how to handle the already-circulated report.
Structured elaboration
- Verify before you raise it. Confirm the specific gap yourself (which source, what kind of gap) so you are not escalating a hunch. Raising a vague suspicion is more likely to read as an attack than raising a concrete, checkable one.
- Private channel first. Do not raise it in the stakeholder meeting or a public thread. The goal at this stage is a shared understanding between the two of you, not a public correction.
- Lead with evidence, not the conclusion. Ask how the sample was chosen and show what you noticed, rather than opening with "your report is biased." The evidence does the work; you are not the one delivering a verdict.
- Propose a joint, falsifiable test. Agree in advance on a specific check that would settle the question either way, for example, re-running the analysis with a more complete data source and comparing results. If the two produce materially different conclusions, that is evidence of the bias; if not, the original report holds and nothing was lost.
- Handle the stakeholder-facing correction together. If the test confirms the bias, present the fix as a normal part of the quality process, credit the colleague's original work, and avoid framing it as catching an error.
Worked example
A colleague circulated a cohort analysis to stakeholders built from a single data source you know has intermittent collection gaps. Rather than flagging it in the stakeholder thread, you ask to talk privately: "I noticed this cohort uses source A, do you know if that source had full coverage this quarter?" You show the specific evidence (gap periods, affected date ranges) and ask how the sample was chosen. Together you agree on the joint test: re-run the same cohort analysis using a second, more complete source and compare the two results. If the numbers move meaningfully, you have confirmed a real bias and both go to stakeholders together with an updated report and a data-quality caveat; if the numbers hold steady, the original report stands and the check cost an afternoon, not a reputation.
Trade-offs & pitfalls
- Raising it directly in the stakeholder meeting "to protect the org from a bad decision" scores a point in the moment but damages the working relationship and makes the colleague defensive on the next collaboration.
- Staying silent because raising it feels confrontational lets a real bias ship into decisions uncorrected, which is a worse outcome for the partnership than a slightly awkward private conversation.
- The senior move here is designing the joint test so the evidence settles the question, rather than relying on how persuasively you phrase the concern. A well-chosen test does the convincing; the conversation itself does not have to.
- A remaining pitfall: proposing a fix without proposing how to verify it worked. A joint investigation that ends without a joint, agreed check on the outcome tends to resurface as the same disagreement later.
For a new KPI calculation that will be reused across multiple dashboards, decide between a CTE, a temporary/staging table, and a materialized view. What criteria drive the decision (readability, reuse, performance, indexability, freshness, transactional behavior), and how does your answer differ for: a one-off ad hoc analysis, a repeatedly-used expensive calculation, and a near-real-time dashboard?
Sample Answer
Direct answer: Pick the tool by matching its physical behavior to what the KPI (key performance indicator) actually needs: a common table expression (CTE, a named subquery written with WITH ... AS (...)) for a one-off analysis you'll run once and throw away, a temp or staging table when the calculation is expensive but the reuse window is short (a single session, a single ETL run, meaning extract-transform-load), and a materialized view (a query whose result is physically stored on disk and refreshed on a schedule or trigger, rather than recomputed on every read) once the same expensive logic is read repeatedly by multiple dashboards and can tolerate being slightly stale. Near-real-time dashboards are the one case where none of the "precompute it" options fit cleanly: they usually need a lean, indexable live query instead, or an incrementally-updated summary table rather than a full materialization.
Structured elaboration
| Criterion | CTE | Temp / staging table | Materialized view |
|---|---|---|---|
| Readability | High: named, inline, keeps logic next to the query that uses it | Medium: logic is split across a create step and a query step | High for consumers: they just query it like any table; the transformation logic lives elsewhere |
| Reuse across queries/dashboards | None by default: re-declared and recomputed in every query that needs it (Postgres 12+ inlines a single-reference CTE by the query planner) | Good within one session or job; not visible to other sessions unless persisted | Best: one physical object every dashboard can SELECT from |
| Performance (recompute cost) | Recomputed every time the query runs; cheap for small inputs, expensive if reused often on a large base table | Computed once per session/job; indexable afterward | Computed once per refresh cycle; reads are just a table scan |
| Indexability | None: a CTE has no persistent structure to index | Yes: you can add indexes to a temp table after loading it | Yes: materialized views can carry their own indexes in most engines |
| Freshness | Always current as of the moment the query runs | Current as of whenever it was populated in that session/job | Only as current as the last refresh; staleness is a designed trade-off, not a bug |
| Transactional behavior | Part of the surrounding transaction; nothing persists beyond the query | Local to a session/connection (or transaction, depending on TEMPORARY/##temp semantics); dropped automatically | A separate persisted object with its own refresh transaction, decoupled from any one query's transaction |
Recommendations by scenario:
- One-off ad hoc analysis: a CTE (or a plain subquery). There is no second reader to amortize setup cost against, so the fastest path to an answer wins over any persistence machinery.
- Repeatedly-used expensive calculation: a materialized view (or, where the engine lacks native materialized views, a scheduled job that populates a plain table). The cost of computing it is paid once per refresh instead of once per dashboard load, and it becomes indexable, which a CTE never is.
- Near-real-time dashboard: avoid full materialization; either query the base tables directly with supporting indexes so the planner can push filters down, or maintain an incrementally-updated summary table (updated on write, not recomputed wholesale) if the underlying computation is too heavy to run live on every page load.
When does a CTE pipeline graduate to a materialized view? Three independent signals, any one of which is usually enough on its own: (1) reuse -- the same CTE logic is being copy-pasted into a second, third, or fourth query or dashboard, which is a sign the definition should live in one place instead of many; (2) performance -- the CTE's underlying computation starts showing up as the dominant cost in an EXPLAIN plan across multiple callers, so the aggregate cost of recomputing it everywhere now exceeds the cost of maintaining a refreshed copy; (3) governance -- different query authors start writing slightly different filters around a copy-pasted CTE, so the "same" KPI silently drifts between dashboards. Any of these is the point to promote the logic into a materialized view (or persisted table) with one refresh schedule and one definition that every consumer reads.
Worked example
A KPI like "monthly active accounts" (distinct accounts with at least one qualifying event in the trailing 30 days) is a good stand-in: it is expensive on a large events table because it needs a distinct count over a rolling window, and it is exactly the kind of metric multiple dashboards want to show.
-- (a) one-off exploration: CTE, thrown away after this single query
WITH active_accounts AS (
SELECT DISTINCT account_id
FROM events
WHERE event_time >= CURRENT_DATE - INTERVAL '30 days'
)
SELECT COUNT(*) AS mau FROM active_accounts;
-- (b) repeatedly-used, refresh-tolerant: materialized view, indexed, refreshed nightly
CREATE MATERIALIZED VIEW mv_monthly_active_accounts AS
SELECT account_id, MAX(event_time) AS last_active_at
FROM events
WHERE event_time >= CURRENT_DATE - INTERVAL '30 days'
GROUP BY account_id;
CREATE INDEX idx_mv_maa_account ON mv_monthly_active_accounts(account_id);
-- refreshed on a schedule, e.g. REFRESH MATERIALIZED VIEW mv_monthly_active_accounts;
-- (c) near-real-time: query live, relying on an index on events(account_id, event_time)
-- rather than pre-aggregating, so results are current to the second
SELECT COUNT(DISTINCT account_id) AS mau_live
FROM events
WHERE event_time >= NOW() - INTERVAL '30 days';
ML (machine learning) feature pipeline framing: this exact decision tree also applies when the "dashboard" is actually a model training job reading a feature. A feature explored once in a notebook is a CTE; a feature reused across many training runs (and needing point-in-time correctness, i.e. only using data available as of each label's timestamp) is exactly the "repeatedly-used expensive calculation" case, and belongs in a materialized feature table (or a feature store) that is refreshed on a known cadence, not recomputed inline in every training query. The freshness criterion becomes sharper here: a stale feature table used for training is often fine, but the same staleness at serving/inference time can silently create training-serving skew, so the acceptable staleness window has to be decided per use case, not assumed.
Spark SQL / Catalyst optimizer angle: the reuse math is different in Spark. Spark's Catalyst optimizer treats a WITH clause referenced multiple times by inlining and re-planning the underlying logical plan at each reference site by default, rather than computing it once and sharing the result the way a materialized view would. A CTE joined against three times in one Spark SQL query can trigger the same expensive computation three separate times unless you explicitly force sharing (persisting the intermediate DataFrame with .cache()/.persist(), or writing it out and reading it back). This makes the "graduate to materialization" decision arrive sooner in Spark than in a single-node warehouse: a CTE reused even twice within one query is worth checking for repeated work, not just a CTE reused across many separate queries.
Trade-offs & pitfalls
The common wrong turn is reaching for a materialized view purely because a query is slow, without checking whether the consumer can actually tolerate the staleness that comes with it: a materialized view refreshed hourly is the wrong answer for a dashboard that promises "as of right now." Conversely, leaving an expensive, frequently-reused CTE unmaterialized "for simplicity" quietly multiplies its cost by however many dashboards call it, since nothing about a CTE shares work across separate queries. Temp/staging tables sit in between and are easy to over- or under-use: they are the right tool inside a single multi-step job (build once, query several times, then discard), but reaching for one to serve a dashboard means re-inventing a materialized view's refresh logic by hand, usually worse. Always confirm the actual freshness requirement with the stakeholder before choosing: "near-real-time" and "updated every 15 minutes" are very different engineering problems that get conflated in casual requirements language.
How do you make sure an insight you present actually passes the "so what" test for the person receiving it, rather than just being an interesting fact?
Sample Answer
Direct answer
The "so what" test means checking that a finding is tied to a decision or action the reader can actually take, not just a statistic. Before you include a finding, ask "if I were the recipient, what would I do differently after hearing this?" If the honest answer is nothing, you cut it, reframe it around the decision it does inform, or dig one level deeper until you reach the implication that matters to that audience.
Structured elaboration
- Identify the decision-maker's actual decision. A number only matters if it changes what someone chooses to do next.
- Connect the metric to a lever they control. If the reader can't act on the number, restate it in terms of something they can influence.
- State the implication before the number. Lead with what it means, then support it with the figure, not the other way around.
Worked example
A report says "weekly active users dropped from 52% to 48% after the redesign." On its own that fails the so-what test, it is just a fact. Reframed: the drop is 4 percentage points off a base of 52%, which is about 1 in 13 of the users who used to come back weekly (4/52 is roughly 7.7%, close to 1/13). The reframed version adds that the drop is concentrated in first-week users, so the implication is "fix onboarding before rolling this out further," which is something the team can act on immediately.
Trade-offs and pitfalls
Forcing every finding into an action can lead to over-editorializing or manufacturing false urgency around numbers that are legitimately just monitoring metrics. Not everything needs a call to action; some findings are correctly filed as "keep watching this."
What the interviewer probes next
Expect a follow-up about findings that are genuinely informational only, and how you avoid crying wolf by forcing an action onto every number you report.
You are launching a new recommendation engine intended to increase engagement and revenue. Propose two or three primary metrics and two supporting metrics. For each, give an exact definition, explain why you chose it, and name one perverse incentive it could create that you would watch for.
Sample Answer
For a new recommendation engine, the primary metrics should directly measure whether the recommendations are being acted on and monetized, while supporting metrics catch whether that lift is coming at the expense of user trust or content diversity.
Metric set
| Role | Metric | Definition | Why chosen |
|---|---|---|---|
| Primary | Recommendation click-through rate (CTR) | Clicks on recommended items divided by recommendation impressions, per session | Directly measures whether users find the recommendations relevant enough to act on |
| Primary | Recommendation-attributed revenue per active user | Revenue from purchases within N minutes of a recommendation click, divided by active users | Ties engagement lift to the actual business goal (revenue), not just clicks |
| Supporting | Recommendation diversity (unique categories shown per user per week) | Count of distinct item categories recommended, averaged per user | Detects a system collapsing into a narrow set of popular items |
| Supporting | Session length / bounce rate on recommendation surfaces | Time spent or immediate-exit rate after viewing recommendations | Flags recommendations that are clicked but disappointing (bait-and-switch effect) |
Perverse incentive to watch for
Optimizing purely for CTR rewards recommending sensational, clickbait-adjacent, or already-popular items rather than genuinely useful ones, since a system can raise clicks by surfacing items the user was likely to buy anyway (cannibalizing organic discovery) or by choosing attention-grabbing but low-relevance items that get clicked once and never again. This shows up as CTR rising while post-click satisfaction signals (return visits to the same category, low bounce, revenue per click) stay flat or fall, so the supporting diversity and session-quality metrics exist specifically to catch this pattern before it's mistaken for a genuine win.
Trade-offs and pitfalls
A pure revenue-per-click primary metric alone can reward recommending expensive items over items the user actually wants, so pairing CTR with revenue (not either alone) keeps the incentive aligned with genuine relevance, not just monetary value per click.
Given a sample of 50 measurements with sample mean 20 and sample standard deviation 4, compute a 95% confidence interval for the true mean assuming approximate normality. State assumptions clearly and whether to use z or t distribution.
Sample Answer
Direct answer
With n=50, sample mean xˉ=20, and sample standard deviation s=4, use the t-distribution because s is an estimate of the population standard deviation, not a known value. That gives a 95% confidence interval of approximately (18.86, 21.14).
Structured elaboration
Why t, not z. The choice between z and t is about whether the population standard deviation σ is known, not really about whether n crosses some threshold like 30. Here only the sample standard deviation s is given, so σ is unknown and must be estimated from the data, which is exactly the situation the t-distribution accounts for: its slightly heavier tails reflect the added uncertainty of estimating σ from a finite sample, using df=n−1 degrees of freedom. As n grows, tn−1 converges to z, which is why the common "z if n≥30" shortcut works in practice, but the underlying reason is the known-vs-estimated-variance distinction, not sample size on its own.
Assumptions. The 50 measurements are independent draws, and either the underlying population is approximately normal, or n=50 is large enough for the Central Limit Theorem to make the sampling distribution of the mean approximately normal even if the raw data isn't. With n=50 that's a reasonable assumption for most metrics unless the underlying distribution is severely skewed or has extreme outliers, in which case a bootstrap CI is a safer check.
Worked example
SE=ns=504≈0.5657Critical value at df=49: t0.975,49≈2.0096 (verified with scipy.stats.t.ppf(0.975, 49)).
For comparison, using z=1.96 instead gives a margin of 1.96×0.5657≈1.109, or (18.89,21.11), a difference of about 0.03 in the margin. At n=50 the t and z answers are already nearly indistinguishable, but the t-based interval is the formally correct one since σ was never given.
Trade-offs & pitfalls
- Reporting the z-based interval here isn't a big numeric error at n=50 (the two margins differ by under 3%), but it's the wrong justification: "n is big enough" isn't really why t is correct or incorrect, "is σ known" is. Getting the reasoning right matters more than the ~0.03 numeric difference in this case, and matters a lot more at smaller n where the gap between t and z widens substantially.
- If the 50 measurements aren't actually independent (e.g. repeated measurements on the same handful of subjects), both formulas understate the true uncertainty regardless of which critical value is used.
- If the underlying distribution is heavily skewed rather than roughly symmetric, a mean-based CI can be misleading even with n=50; a bootstrap interval or a transformation (e.g. log) is worth checking as a sanity check before reporting the analytic interval as-is.
Tell me about a time you had to give difficult feedback to a teammate or partner you worked with closely. What made the conversation hard, how did you frame it, and what happened afterward?
Sample Answer
Situation: I worked closely with a partner who was strong technically but often changed direction late, which was creating churn for the rest of the team.
Task: I needed to give difficult feedback without damaging trust.
Action: I chose a private conversation and used the SBI format, which means Situation, Behavior, Impact. I said, "In yesterday's planning meeting, when the scope changed after we had already aligned with design, it created rework and made the team less confident in the plan." I kept the tone factual, then asked what was driving the change. It turned out they were reacting to pressure from another stakeholder and had not surfaced it earlier. We agreed they would flag uncertainty sooner and bring changes through planning instead of in the middle of execution.
Result: The conversation was uncomfortable, but it improved our working relationship because it was specific and fair. Their behavior became more predictable, and the team trusted them more because expectations were clearer.
Explain, in the context of conversion experiments, what the null hypothesis is and describe Type I and Type II errors. Give examples of each error in the context of an A/B test to increase checkout conversion, and explain acceptable alpha/beta trade-offs for product experiments.
Sample Answer
Direct answer
The null hypothesis in a conversion experiment is the default assumption that the treatment has NO effect on conversion, that any observed difference between control and treatment is just sampling noise. A Type I error is falsely rejecting that null (concluding the treatment worked when it actually did not); a Type II error is falsely failing to reject it (concluding the treatment did not work when it actually did). Product experiments typically accept a 5% Type I error rate (α=0.05) and a 20% Type II error rate (β=0.20, i.e. 80% power), because shipping a truly-neutral change is usually cheaper to recover from than missing a truly-positive one, but that default is a judgment call, not a law of nature.
Structured elaboration
Formal definitions. For a checkout-conversion A/B test, the null hypothesis H0 is that the treatment's true conversion rate equals the control's true conversion rate:
H0:ptreatment=pcontrolThe alternative hypothesis H1 is that they differ: H1:ptreatment=pcontrol (a two-sided test; a one-sided test would specify a direction). The test computes a p-value, the probability of seeing a difference at least as extreme as what was observed, ASSUMING H0 is true; if that p-value falls below α, the test rejects H0 and calls the result "statistically significant."
The two error types, side by side:
| H0 is actually true (no real effect) | H0 is actually false (real effect exists) | |
|---|---|---|
| Test rejects H0 (declares "significant") | Type I error (false positive), probability α | Correct decision (true positive), probability = power = 1−β |
| Test fails to reject H0 (declares "not significant") | Correct decision (true negative), probability 1−α | Type II error (false negative), probability β |
Why the asymmetry in typical defaults. α=0.05 and power =0.80 (β=0.20) is a widely used default, but it is deliberately asymmetric: it accepts a 1-in-4 chance of MISSING a real effect for every 1-in-20 chance of falsely CLAIMING one. That asymmetry reflects a judgment about which error is more costly in a typical product context: a false positive (Type I) means shipping a change that does nothing, which mostly just wastes the engineering effort already spent and adds a small amount of code complexity; a false negative (Type II) means walking away from a genuinely valuable change, which is a real, if invisible, opportunity cost. Tightening α (say to 0.01) reduces false positives but, holding sample size fixed, increases the false-negative rate, since the two trade off against each other for a given amount of data; the only way to improve BOTH simultaneously is to collect more data.
Worked example
Type I error example, checkout-conversion test. A team tests a simplified checkout form against the current one. The true underlying effect is exactly zero (the simplification looks nicer but genuinely does not change behavior), but due to random sampling variation the treatment group happens to show 200 more purchases than control would have by chance alone; the p-value comes in at 0.03, below the 0.05 threshold, so the team declares a win and ships the change. The null hypothesis was actually TRUE, but the test rejected it: this is a Type I error, a false positive. Cost: engineering effort spent building and maintaining a change that provides no real business value, plus a wrong entry in the "what we learned" experimentation log that could mislead a future decision.
Type II error example, same test. Now suppose the simplified checkout genuinely does increase conversion by a real 1.5 percentage points, but the test only ran for 3 days with modest traffic, well under the sample size the effect size would need for adequate power. The observed difference is directionally positive but the p-value comes in at 0.18, above 0.05, so the team concludes "no significant effect" and reverts the change. The null hypothesis was actually FALSE (a real effect existed), but the test failed to reject it: this is a Type II error, a false negative. Cost: a genuinely valuable improvement gets shelved, and unless someone re-tests it later with adequate power, that revenue lift is simply never captured.
Acceptable alpha/beta trade-offs in practice. The "standard" 0.05/0.20 defaults are a reasonable starting point, not a universal rule; the right values depend on the DECISION's cost asymmetry. A change with very low downside risk and high potential upside (a copy tweak with negligible engineering cost) can tolerate a looser α, since a false positive there is nearly free to walk back. A change with real downside risk (altering how payment information is collected, where a false positive could mean shipping something that quietly increases fraud) warrants a STRICTER α (0.01), accepting the corresponding increase in Type II risk, because the cost of a false positive here is materially higher than the cost of a missed opportunity. The right practice is to name the alpha/beta trade-off explicitly as a business decision before running the test, not to default to 0.05/0.20 by habit regardless of what is actually being tested.
Trade-offs and pitfalls
- Common mistake: treating "not statistically significant" as proof the treatment has NO effect. Failing to reject H0 only means the test could not distinguish the observed data from pure noise at the chosen confidence level; it is equally consistent with "no effect" and with "an effect too small or the sample too underpowered to detect," exactly the Type II scenario above.
- Peeking inflates the real Type I rate above the stated α. Checking results daily and stopping the moment the p-value first dips below 0.05 (rather than committing to a pre-determined sample size or using a sequential-testing method designed for repeated looks) means the ACTUAL false-positive rate across the whole monitoring period is higher than the nominal 5%, since you are effectively giving the test many chances to cross the threshold by chance.
- A statistically significant result is not automatically a practically significant one. With enough traffic, even a genuinely tiny, business-irrelevant effect (a 0.05 percentage-point lift) can reach p<0.05; the minimum detectable effect chosen before the test should reflect the smallest lift actually worth shipping, not just "anything nonzero."
- Power depends on the true effect size, which is unknown before the test runs. A power calculation is only as good as its assumed effect size; if the real effect turns out smaller than assumed, the test is actually underpowered relative to what was planned, which is a common, quiet source of Type II errors that a team never notices because the test "ran as planned" on paper.
Sales leaders argue the statistical forecast underestimates next quarter. How would you handle this disagreement? Walk through your steps: validating the data, reconciling assumptions, producing side-by-side scenarios, proposing compromise approaches, and restoring trust for future forecasting cycles.
Sample Answer
Direct answer
When sales leaders dispute a statistical forecast, the right response is a structured process, not a unilateral defense of the model or a silent capitulation: validate the underlying data first, surface and reconcile the specific assumptions being disputed, produce side-by-side scenarios so both views are visible rather than argued in the abstract, propose a documented compromise where warranted, and use the resolution to rebuild trust for future cycles rather than treating it as a one-off argument to win.
Structured elaboration
- Validating the data: before engaging on the substance of the disagreement, confirm the forecast's inputs are actually correct (no stale data, no broken pipeline, no missed recent event) - a meaningful fraction of forecast disputes turn out to be legitimate data-quality catches, not a genuine model-vs-judgment disagreement, so ruling this out first is both fast and often the actual resolution.
- Reconciling assumptions: identify precisely WHERE the statistical model and the sales leaders' intuition diverge - is it a different read on a specific deal, a market condition the model has no way to see (a competitor's recent move), or genuine overconfidence on one side? Naming the specific assumption in dispute turns a vague "the number feels wrong" into something concrete enough to actually resolve.
- Producing side-by-side scenarios: rather than picking one number, present the model's forecast AND a scenario reflecting the sales leaders' adjustment, with the specific assumption difference driving the gap made explicit - this respects both inputs and lets the eventual decision-maker see the trade-off rather than a black-box disagreement.
- Proposing compromise approaches: a blended forecast (weighting the statistical model and human judgment, as in collaborative forecasting more broadly) is often defensible when both sides have genuine signal the other lacks; document the blend and the reasoning, not just the final number.
- Restoring trust for future cycles: track which side (model or human adjustment) was closer to the eventual actual, and feed that back explicitly into the NEXT cycle's process - if human overrides have systematically been closer to actuals recently, that's a real signal the model may be missing something structural; if the model has been closer, that's useful evidence too, and either way, closing the loop with actual outcomes (rather than re-litigating the same disagreement from scratch each cycle) is what actually builds durable trust in the forecasting process.
Worked example
This is the same underlying discipline as any collaborative forecasting workflow where human adjustments (sales judgment, marketing input) are layered onto a statistical base: the productive version tracks whether those adjustments, on average, have actually improved on the model's own accuracy over time, rather than treating every override as automatically valuable or automatically suspect - a defensible process measures this explicitly (comparing overridden vs. non-overridden forecast accuracy against eventual actuals) instead of relying on anecdote or seniority to settle the disagreement.
Trade-offs & pitfalls
The most damaging failure mode here is NOT reconciling anything and instead quietly picking whichever number is more politically convenient in the moment - that erodes the forecasting process's credibility either way (with the modelers if judgment always wins with no accountability, or with the business side if the model always wins with no acknowledgment of real on-the-ground signal it can't see). A durable process needs to be able to point to a track record, not just a single episode, to settle these disputes over time.
Explain to a board of non-technical members why 'correlation does not imply causation,' using a simple visual example you would present. Describe the two charts and captions you'd use, then propose a short company policy for when to act on correlated findings versus when to require an experiment.
Sample Answer
Direct answer
Two variables moving together does not tell you which one, if either, is causing the other, or whether a third factor is driving both; the clearest way to show this is a case where the "obvious" causal story is provably wrong.
Structured elaboration
Two charts and captions that work well:
- Chart 1: ice cream sales and drowning incidents both rising over the summer months, captioned "these two rise and fall together" - purely descriptive, no causal claim.
- Chart 2: the same two series with a third line added, average daily temperature, captioned "both are driven by warm weather: more swimming AND more ice cream sales, not one causing the other" - revealing the shared driver (the classic confounder in this analogy).
A short company policy that follows naturally: act directly on a correlated finding only when a plausible mechanism is already well understood and the cost of being wrong is low; require a controlled experiment before acting on any correlation that would drive a costly or hard-to-reverse decision.
Worked example
A live version of the same pattern: if a company observes that customers who use a certain feature have higher retention, it's tempting to conclude "the feature causes retention." Retention-prone customers (more engaged from the start) may simply be more likely to try new features too, making feature usage the ice cream and underlying engagement the temperature. Only a randomized rollout of the feature, comparing retention between an offered group and a not-offered group, can distinguish "the feature helps" from "engaged people use both features and retain better regardless."
Trade-offs and pitfalls
In the moment, when a stakeholder in a live meeting jumps straight from a correlation to a policy change, the useful move is not to lecture on causation abstractly but to ask one concrete question: "what's a plausible reason these two might move together WITHOUT one causing the other?" That question does the work the ice-cream analogy does, without requiring the audience to sit through a definitions lesson, and it usually surfaces the confounder the audience hadn't considered, which is what actually changes their mind.
Spot and correct the errors in these WHERE clauses: (1) WHERE status IN (), (2) WHERE discount = NULL, (3) WHERE order_date BETWEEN '2024-03-01' AND (incomplete). For each, explain the error and give the corrected form. Then generalize: how do you write a NOT IN exclusion list that stays correct even if the list of excluded values is empty or NULL (e.g. supplied by an application variable)?
Sample Answer
Each of these three snippets fails for a different reason, and the fix generalizes into one robust pattern for exclusion lists supplied by an application.
Structured elaboration
WHERE status IN ()is a syntax error in most engines (or, in dialects that allow it, matches nothing) because an empty list has no values to compare against. There is no single "corrected" form independent of intent: if the empty list means "no restriction was requested", drop the IN clause entirely before the query is built; if it means "this filter should legitimately match nothing" (e.g. a UI multi-select with every option unchecked), the honest, portable equivalent isWHERE FALSE, valid everywhere and behaving consistently instead of relying on how a particular engine happens to parse an empty list.WHERE discount = NULLis not a syntax error but always evaluates to UNKNOWN (never TRUE), because NULL represents "unknown value", and no comparison operator, including=, can determine two unknowns are equal. Correct form:WHERE discount IS NULL.WHERE order_date BETWEEN '2024-03-01' ANDis an incomplete statement (missing the upper bound) and is a syntax error. Correct form, supplying the missing bound:WHERE order_date BETWEEN '2024-03-01' AND '2024-03-31'.
Generalizing to a parameterized exclusion list: an application variable :excluded_statuses might arrive as NULL (no filter intended) or as an empty array (filter to nothing). Two safe patterns:
-- NOT IN, guarded against NULL and empty
WHERE (:excluded_statuses IS NULL OR status NOT IN (SELECT UNNEST(:excluded_statuses)))
-- NOT EXISTS, the more robust default (see Trade-offs)
WHERE NOT EXISTS (
SELECT 1 FROM UNNEST(:excluded_statuses) AS excl(status_val)
WHERE excl.status_val = status
)
(UNNEST expands an array value into one row per element, so an array parameter can be compared against, or joined to, row by row, the same way a real table would be.) Checking for NULL up front in the NOT IN version means "no exclusions" doesn't accidentally collapse to NOT IN (), which some engines error on and others silently treat as "exclude nothing" or "exclude everything" depending on the engine, an inconsistency worth not relying on. The NOT EXISTS version doesn't need that guard at all: if :excluded_statuses is an empty array, UNNEST produces zero rows, NOT EXISTS over zero rows is always TRUE, and every order is correctly kept, no special-casing required.
The reason NOT EXISTS doesn't need the guard, and NOT IN does, is the NULL-poisoning problem itself: if :excluded_statuses contains a NULL element (say, a bad value slipped in from the application), status NOT IN (SELECT UNNEST(:excluded_statuses)) compares status against that NULL for every row, and status <> NULL evaluates to UNKNOWN. NOT IN's OR-chain of comparisons needs every single comparison to be definitively TRUE to include a row; one UNKNOWN in the chain poisons the whole thing to UNKNOWN (never TRUE), so the query silently returns ZERO rows, for every row, not just ones that would have matched the NULL. NOT EXISTS never has this problem, because it only ever asks "does at least one matching row exist", a question a NULL row can fail to answer TRUE to without poisoning anything else in the chain.
Worked example
Given orders(1,'shipped'), (2,'cancelled'), (3,'pending') and an exclusion list of ('cancelled'): the NOT EXISTS-based exclusion, WHERE NOT EXISTS (SELECT 1 FROM UNNEST(:excluded_statuses) AS excl(status_val) WHERE excl.status_val = status), correctly returns orders 1 and 3, excluding order 2 (status 'cancelled' matches the one excluded value).
With an EMPTY exclusion list (:excluded_statuses = []): UNNEST produces zero rows, so NOT EXISTS is TRUE for every order with no special-case needed, and the query correctly returns all three orders, 1, 2, and 3.
With a NULL slipped into the exclusion list (:excluded_statuses = ['cancelled', NULL]): NOT EXISTS still correctly returns orders 1 and 3, unaffected by the NULL element, since the NULL element simply never matches any row's status, it doesn't need to disprove anything for the other rows. Contrast this with the NOT IN version on the same NULL-containing list: status NOT IN ('cancelled', NULL) returns ZERO rows, silently dropping orders 1 and 3 too, not just excluding order 2, exactly the NULL-poisoning failure this whole pattern exists to avoid.
Trade-offs and pitfalls
The single most reliable fix across engines is NOT EXISTS rather than NOT IN, because NOT EXISTS never has the NULL-poisoning problem NOT IN has, demonstrated above: reach for it by default in exclusion-list logic. The NOT IN plus explicit NULL/empty-list guard shown above is still a legitimate pattern when a team already has NOT IN-based logic and wants the smallest possible diff, it just needs the guard NOT EXISTS gets for free.
Search Results
DoorDash Data Analyst Interview in 2025 (Leaked Questions)
3.3 Behavioral Questions · Describe a time you used data to influence a product or business decision. · How do you approach balancing multiple ...
DoorDash Data Analyst Interview: Analytics Exercise, Case Study ...
Describe a data project you worked on. · How have you made complex data or analyses more accessible to non-technical partners? · What would your ...
Ace the DoorDash Data Scientist interview: Proven 2025 guide
Interview Questions · How do you analyze if a product is successful? · What are the most important metrics for DoorDash? · How do you measure revenue and cost?
8 DoorDash SQL Interview Questions (Updated 2025) - DataLemur
SQL Question 1: First 14-Day Satisfaction · SQL Question 2: Analyze DoorDash Delivery Performance · SQL Question 3: Can you explain what an index ...
DoorDash SQL Interview Question for Data Scientists ... - YouTube
Solution and walkthrough of a real SQL interview question for Data Scientist and Data Analyst technical coding interviews.
DoorDash Data Analysis Interview Questions (Updated 2025)
Review this list of DoorDash data analysis bizops & strategy interview questions and answers verified by hiring managers and candidates.
This interview preparation guide was generated using AI-powered research from the sources listed above. While we strive for accuracy, we recommend verifying critical information from official company sources.
Want to create your own tailored preparation guide using our deep research?
Get Started for FreeInterview-Ready Courses
Visual-first, interactive, structured learning paths