Bloomberg System Design Interview: Live Stock Price Streaming to Watchlists

Based on questions reported for Bloomberg interviews

The interviewer opens

Hi, and thanks for joining. Welcome to your interview for the software engineer role at Bloomberg. We'll design a system together, and you can sketch on the whiteboard on the right of your screen as you talk. If you need to step out or take a break, the Pause button at the top right will pause the interview.

The problem is about streaming live stock prices to users' watchlists, which is close to what Bloomberg terminals do every day. 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 takes live prices from stock exchanges and streams them to thousands of users' screens, where each user receives updates only for the tickers on their own watchlist.

Must do

  • Ingest live price updates from several stock exchanges
  • Users create and edit a watchlist of tickers
  • Push each price update to every user watching that ticker
  • Users see only updates for tickers on their watchlist

Must hold

  • Updates reach screens within milliseconds of arriving from the exchange
  • Updates for a ticker arrive in the order the exchange published them