We use cookies for site analytics. Accept to help us understand how the site is used. See our Privacy Policy for details.
Prep for Discord's engineering loop - real-time voice/video infrastructure, Elixir/Erlang depth, low-latency systems, and the unusual scaling challenges of large guilds.
Discord's interview reflects what the company actually operates: a real-time chat, voice, and video platform serving hundreds of millions of users across guilds (servers) that range from a handful of friends to 1M+ members. The level ladder runs SWE (mid-level, 2-5 YOE) through Senior, Staff, and Principal Engineer. The technical loop is anchored by the unusual stack and operational shape - Discord runs heavily on Elixir/Erlang for the realtime gateway and voice layer (the BEAM VM's actor model and supervision trees fit chat/voice naturally), Rust for the read-heavy paths and the storage layer (ScyllaDB, custom message store), and Python for backend services and ML. Coding rounds skew Medium-to-Hard with strong emphasis on code that handles concurrency, partial failures, and the long-tail latency regimes that matter for voice/video. System design rounds frequently center on real-time problems Discord engineers actually solve: a chat gateway that fans out to millions of WebSocket connections, voice/video routing through SFU clusters with sub-100ms tolerances, presence at the scale of 'show me who is online in a 1M-member guild,' message delivery with at-least-once semantics. Behavioral signal screens for craft, comfort with operational ownership (Discord engineers carry pagers and own their services end-to-end), and pragmatism about shipping in a product that can't take downtime gracefully. The cultural anchor is a small-team, high-autonomy engineering shop - ~600 engineers running infrastructure that compares to mid-size FAANG product teams in scale.
Realtime-flavored. Practice WebSocket gateway fanout, voice/video routing, presence at guild scale, message delivery semantics, and the specific tradeoffs of running on the BEAM VM. Knowing how Discord's gateway and voice infrastructure actually work (Elixir gateway clusters, Rust services for hot paths, ScyllaDB for messages) gives concrete vocabulary.
Medium-to-Hard difficulty. Discord weights solutions that handle concurrency and partial failures without being prompted. Trees, graphs, queues, hash maps, and interval problems all common.
Deeply tested for realtime and voice teams. WebSocket lifecycle, TCP vs UDP tradeoffs for voice, WebRTC mechanics, NAT traversal, packet loss and jitter handling. This is where realtime candidates differentiate from generic backend candidates.
Concurrency primitives, scheduling, lock contention, the BEAM VM's preemptive scheduler. Important background for realtime and voice work.
Queues, ring buffers, hash maps, tries. The right structure under realtime constraints (millions of concurrent connections, message ordering across reconnects) is the insight Discord cares about.
Operational-ownership focused. Stories about pager incidents, end-to-end service ownership, navigating fast-shipping vs safe-operating tradeoffs. Generic 'I'm a team player' answers don't pass.
Comes up in system design at depth. Discord runs heavily on ScyllaDB for messages and Postgres for metadata; partition strategy, hot-partition mitigation for celebrity channels, and the message-store sharding model all surface.
Curated walkthroughs for the bounded designs that show up in Discord's system design rounds. Capacity estimation, architecture, deep-dives, and trade-offs.
Long-lived connections, ordering guarantees, presence, and the difference between 1:1 chat and a 50K-member group.
Fan-out at write vs read, at-least-once vs exactly-once, dead-letter queues, and the multi-channel delivery problem - one message, ten failure modes.
Five algorithms, three sharding strategies, one fail-open vs fail-closed decision. The bounded design that surfaces in every backend interview loop.
Consistent hashing, eviction, replication, and what really happens when a single hot key takes down the cluster.
Sample STAR answers, common prompts, pitfalls, and follow-up strategies for the behavioral themes that decide Discord's loop.
Tested at every level, scored harder at senior. Did you take responsibility for outcomes - or just for tasks?
Speed matters. But the principle is reversible-vs-irreversible reasoning, not 'I work fast.' Get this distinction wrong and the answer reads as reckless.
Leaders operate at all levels. The interviewer is testing whether you actually understand your own systems - or whether you summarize what your team built.
The honesty test. Can you own a missed commitment or production incident specifically and without flinching - or do you blame the team, the requirements, or the on-call rotation?
Total comp ranges, base, equity, and bonus across the levels tested in this loop. Aggregated from public sources.
4 SWE levels covered. Updated 2026-06.
416 MCQs and 231 coding challenges, grouped by topic. Free preview shows question titles - premium unlocks full content.
Behavioral and system design rounds reward practice with a live AI interviewer that probes follow-ups, not silent reading.
Start an AI mock interview →Depends on the team. Realtime gateway, voice infrastructure, and presence teams are heavily Elixir/Erlang - knowing OTP patterns (GenServer, supervision trees, the actor model), the BEAM VM's preemptive scheduler, and pattern matching is a real differentiator. Storage, infrastructure, and Rust-heavy teams expect general awareness but don't require Elixir fluency. Mobile, desktop, and web teams use TypeScript and Swift/Kotlin and don't touch Elixir at all. Ask your recruiter what the team's stack is - they'll tell you honestly which language(s) matter for the specific loop.
Concrete prompts: 'design a chat gateway that maintains millions of concurrent WebSocket connections and fans out messages to all members of a guild within 100ms.' Or: 'a celebrity user joins a 1M-member guild - how do you handle the fanout without melting the gateway.' Or: 'design voice routing for a 100-person stage channel where the speaker order can change every few seconds.' Discord engineers solve these problems daily, and interviewers want to see you reason about connection lifecycle, fanout strategies, hot-partition mitigation, and the BEAM's fit for this shape of workload.
The high-level shape: messages persist in ScyllaDB sharded by channel ID, with custom partitioning to avoid hot partitions on celebrity channels. The Elixir gateway maintains WebSocket connections to clients and uses an actor-per-connection model on the BEAM. Fanout is layered - within a single gateway node, messages route via local ETS tables; across nodes, via a custom internal pubsub. Read-heavy paths (message history, search) use Rust services for performance. Knowing this shape isn't required for interviews but gives you concrete vocabulary, and Discord engineers have published detailed blog posts on the architecture.
Real. Engineers carry pagers and own their services end-to-end - there's no separate ops team that catches your incidents. The behavioral round explicitly probes whether you've operated services in production, recovered from incidents, and navigated the tradeoffs between shipping fast and operating safely. Candidates from environments where SRE teams own incidents sometimes underestimate this; engineers who've owned services at high-pressure shops (FAANG product infrastructure, Stripe, Cloudflare) tend to fit naturally.
Slack is the closest analog (chat at scale, similar workspace/guild model) but with enterprise-flavored sensibility and a heavier Java backend. Twitch shares the realtime-video DNA (live streaming at scale, low-latency video distribution) but with a unidirectional broadcast model rather than peer-to-peer. WhatsApp operates at larger raw scale (billions of users) with a similarly Erlang-heavy backend (the original Erlang-on-FreeBSD architecture) but with end-to-end encryption and a much smaller engineering team relative to scale. Engineers who like Discord's interview shape often like all three; the specific mix of voice/video + chat + community at Discord is the differentiator.
Competitive at senior+ but generally below the FAANG market on equity. SWE targets ~$200-280K total comp, Senior ~$300-420K, Staff ~$420-600K, Principal $600K-900K+. Discord is private with private-company stock that has annual tender events for partial liquidity. Cash is competitive; equity upside depends on company valuation trajectory. Recent vintages (2024-2026) have improved as Discord's revenue scaling has matured. Levels.fyi has reasonable current data. Negotiation is real at Senior+.