Design a Budgeting App
"Design a Mint-like budgeting app: transactions from credit and debit cards, analytics, and a notification when a transaction takes spending over a threshold." That is a verbatim Datadog system design prompt, and the wording asks for three separate surfaces. A connector pushes card transactions in. The app categorizes and stores them, then shows the user where their money went. And it fires an alert the moment a category crosses a budget line. The trap is to hear "notification over a threshold" and design only an alerting system. That leaves most of the prompt on the table, and a design round graded on breadth will mark it down. We build out the full product here, with the alert as one piece of it.
Nail the nouns down first; every later choice leans on them. A transaction is one card charge. It carries a user, the card, an amount, a merchant, a timestamp, plus a status that moves from pending to posted. Each one lands in a category, the bucket of dining or travel or groceries. A budget is a user's limit for one category over a window, "dining under $500 this calendar month." Behind the budget sits a running aggregate. That is the per-user-per-category sum we compare against the limit, and it powers the analytics too. When the aggregate crosses the limit, the system fires an alert. Fix the nouns early: transaction, category, budget, aggregate, alert. The design rotates around one flow. A transaction travels from the card network all the way to that aggregate and the notification it can trip.
- 1 diagram
- 5 sections
- about 45 min
Premium lessonDatadog interview guide
These took digging.
What candidates walked out with, from 20,000+ reports, forum threads behind logins and write-ups in Chinese. Then solved step by step.
100 companies. Checked every month.
Unlock all 100 companies$49 a year · less than $1 a week · Cancel anytime
Datadog interview guideKnow what Datadog asks before you walk in.
11 coding · 4 system design · 30 behavioral questions
Get their questions first.
InterviewLegend is independent and not affiliated with or endorsed by any company it covers.