DoorDash System Design Interview: Ad Click Counts for Advertisers

Based on questions reported for DoorDash interviews

The interviewer opens

Welcome, and thank you for joining your interview for the software engineer role at DoorDash. Today we'll design a system together, with you sketching on the whiteboard on the right of your screen as you talk. If you need to step out or take a break, you can pause the interview any time with the Pause button at the top right.

The problem is about counting ad clicks for advertisers in the DoorDash app, which matters because advertisers rely on those numbers to see what their spend is getting them. It's up in the Problem tab, so please read through the requirements and ask me anything you'd like clarified before you start drawing.

The problem

Design a system that collects click events on ads shown in the DoorDash app and lets advertisers see how many clicks each of their ads received over different time windows.

Must do

  • Record every click a consumer makes on an ad
  • Show an advertiser click counts per ad for a chosen time window
  • Support recent windows (last few minutes) and long ranges (weeks to months)
  • Advertisers see only their own ads' data

Must hold

  • Counts must be fresh: recent clicks show up quickly
  • Counts must be correct: no lost clicks and no double counting