Robinhood (stock trading)
You are interviewing for Engineering Manager. This is a 45–60 minute whiteboard / word-problem. Talk through observations as you go. Draw.
This prompt is adapted from System Design School: Design Robinhood. Read this document only. Do not open the interviewer page. Do not open the SDS solution until after the mock.
Context
You are designing a retail stock-trading app. Users watch prices, place buy and sell orders, and expect cash and share balances to change as orders execute.
You do not run the exchange’s matching engine. Orders go to an external venue. That venue is not in your database transaction.
Problem
Design the system.
In scope: streaming live quotes for symbols a user follows; placing and tracking market and limit orders; maintaining cash balances and share positions as orders fill.
Out of scope: the exchange matching engine itself, options/crypto/margin, the trading UI chrome, market-data vendor wiring details, and T+1 clearing/settlement internals.
Users watch prices tick and tap buy. Those two experiences may not want the same guarantees.
What to produce
- Clarify requirements. Ask questions. Write down what you are optimizing for — especially if two parts of the product disagree.
- Sketch APIs or main operations.
- Draw a high-level design. Walk a quote to the phone, then a buy that fills.
- Go deep on the hardest parts.
- Close as an engineering manager: what ships first, who owns what, what you measure, how you talk about risk.