Design Financial Data Aggregation
Start by placing yourself correctly in the stack, because the design depends on it. You are the app a person opens to see where their money went, the layer above the plumbing that reaches into twelve thousand banks. Reaching every institution, holding the credentials, and scraping the flaky ones is a solved and specialized job, and you buy it from an aggregator like Plaid or MX rather than rebuild it. What the aggregator hands you is a firehose of raw transactions from a handful of different sources, in a handful of different shapes, arriving on their schedule and not yours. Your job begins there. Take that mess, fold it into one clean per-user ledger where every transaction appears exactly once and carries a category a person believes, and keep it current cheaply.
Two forces shape every later choice, and the first is that your inputs are heterogeneous and not yours. You may sit on top of more than one aggregator plus a few direct bank feeds, each with its own token model, its own field names, and its own idea of what a transaction looks like. The second, and the one that decides whether the product is any good, is categorization. A ledger of uncategorized transactions is a bank statement, which the user already has. The value you add is the sentence "you spent $340 on groceries this month," and that sentence is only worth anything if the category is right. So lead with two things: an abstraction that hides which source a transaction came from, and a categorizer people can trust.
- 2 diagrams
- 5 sections
- about 46 min
Premium lessonIntuit 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
Intuit interview guideKnow what Intuit asks before you walk in.
15 coding · 5 system design · 21 behavioral questions
Get their questions first.
InterviewLegend is independent and not affiliated with or endorsed by any company it covers.