Discord·Software Engineer·Onsite - System Design / Architecture
May 2026
Discord system design round for a software engineer role. The whole thing was basically one big question with a lot of follow-up dives, so if you're prepping for this kind of interview, expect to spend most of your time defending trade-offs rather than just sketching boxes.
- Design the chat subsystem for a large-scale messaging app like Slack or Discord, covering end-to-end architecture, and be ready for deep follow-ups on every trade-off you make.
- Walk through your core API design for a chat system: sending messages, fetching paginated history, subscribing to real-time updates, and handling edits and deletes.
- What data model would you use for workspaces, channels, memberships, and messages, and how would you handle both channels and direct messages in a unified way?
- How would you choose a storage backend and partition message data to keep historical queries efficient at scale?
- How would you implement real-time message delivery using WebSockets, and how do you manage connections and subscriptions at scale?
- Compare write fanout versus read fanout for delivering messages to channel members, and explain how your choice changes depending on channel size.
- How do you guarantee per-conversation message ordering and read-your-writes consistency, and how do edits and deletes fit into that model?
- How would you approach full-text search over message history in a chat system?
- How do you handle hot channels or extremely active conversations that create performance bottlenecks?
“I started by stating assumptions out loud which felt good, but I underestimated how deep they'd go on fanout.” The rest of the author's notes on Software Engineer interview at Discord, Onsite - System Design / Architecture round, covers how they worked through the question, what the panel pushed back on, and what they would do differently.
View Post