The problem for a Full Stack Engineer
- Functional: 1:1 and group chat, send text/media, offline delivery, read receipts, last-seen, typing indicators.
- Non-functional: low-latency delivery, high availability, messages must not be lost, end-to-end encrypted (E2EE).
- Scale: ~2B users, ~100B messages/day, mostly small groups (<=256).
- Consistency: per-conversation ordering is required; global ordering across conversations is not. Delivery is at-least-once with client dedup (effectively exactly-once).
Out of scope (covered in detail below)
Voice/video calls, status/stories, the E2EE key-exchange protocol, backups, and media (photos/video) — deferred and discussed in the dedicated section.
As a Full Stack Engineer, the system design round will probe end-to-end feature ownership. Be prepared to go deep on the areas a Full Stack Engineer owns and to articulate trade-offs clearly.
Unlock the full guide
Premium members get every DSA, system design, company and role interview guide — plus AI practice, mock interviews, and analytics.
Unlock with Premium