gitGood.dev
Discord

Software Engineer Interview Prep

SWE / Senior / Staff / Principal (~2-12+ YOE)

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.

394
Practice MCQs
142
Coding challenges
7
Interview rounds

About this loop

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.

The interview loop

  1. 1
    Recruiter screen
    30 minutes. Background, level calibration (Senior vs Staff is the most contested call), team alignment - Discord recruits across realtime (gateway, voice, video, presence), platform (storage, message infrastructure, search), product surfaces (mobile, desktop, web), trust & safety, and infrastructure (data, observability, networking).
  2. 2
    Technical phone screen
    60 minutes. One coding problem at Medium difficulty. Most teams accept any modern language - Python, TypeScript, Go, Rust, Elixir all common. Some interviewers include a domain probe (concurrency primitives, message ordering) if you've been matched to a realtime team.
  3. 3
    Onsite: Coding round 1
    60 minutes. Algorithmic problem with attention to concurrency and partial-failure handling - Discord weights solutions that reason about race conditions and edge cases without prompting. Trees, graphs, hash maps, and queue-based problems all common.
  4. 4
    Onsite: Coding round 2
    60 minutes. Often more applied - debug a snippet with a subtle concurrency bug, extend a working actor-model system, implement a small piece of a chat protocol. For realtime-team candidates, may involve Elixir/OTP patterns or Rust async reasoning.
  5. 5
    Onsite: System design
    60-75 minutes. Realtime-flavored. Common prompts: design a chat gateway that fans out to millions of WebSocket connections, design voice/video routing for a 100-person stage channel, design presence for 1M-member guilds, design message delivery with at-least-once semantics and 100ms p99 latency. Depth on connection management, fanout strategies, and the BEAM/actor-model fit expected.
  6. 6
    Onsite: Domain depth (realtime / infra teams)
    60-75 minutes. Team-specific. Realtime: WebSocket lifecycle, reconnect handling, message ordering across reconnects, presence consistency tradeoffs. Voice/video: WebRTC, SFU vs MCU architectures, jitter buffers, network adaptive bitrate. Storage: ScyllaDB partition strategy, the custom message store, hot-partition mitigation for celebrity-style channels.
  7. 7
    Onsite: Hiring manager / behavioral
    45-60 minutes. Operational-ownership focused. Stories about carrying pagers, owning services end-to-end, recovering from production incidents at user-facing scale, navigating tradeoffs between shipping fast and operating safely. Discord's small-team / high-autonomy culture means engineers are expected to make real architectural calls without committee.

What Discord actually evaluates

  • Real-time systems intuition - latency budgets, jitter, fanout strategies, connection lifecycle
  • Operational ownership - comfort carrying pagers and owning services end-to-end
  • Concurrency reasoning - race conditions, message ordering, partial-failure handling without being prompted
  • Pragmatism over perfection - Discord ships fast and iterates, the bar is on operating safely while doing so
  • Polyglot fluency - Elixir/Erlang for realtime, Rust for performance paths, Python for backend, TypeScript for frontend
  • User-facing craft - chat and voice are deeply emotional products, small UX details matter to retention

Topics tested

System Design

Core68 MCQs · 2 coding challenges

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.

Algorithms

Core77 MCQs · 80 coding challenges

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.

Networking

Core48 MCQs

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.

Operating Systems

Important45 MCQs · 5 coding challenges

Concurrency primitives, scheduling, lock contention, the BEAM VM's preemptive scheduler. Important background for realtime and voice work.

Data Structures

Important44 MCQs · 30 coding challenges

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.

Behavioral

Important63 MCQs

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.

Databases

Occasional49 MCQs · 25 coding challenges

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.

System design topics tested in this loop

Curated walkthroughs for the bounded designs that show up in Discord's system design rounds. Capacity estimation, architecture, deep-dives, and trade-offs.

Behavioral themes tested in this loop

Sample STAR answers, common prompts, pitfalls, and follow-up strategies for the behavioral themes that decide Discord's loop.

Curated practice questions

394 MCQs and 142 coding challenges, grouped by topic. Free preview shows question titles - premium unlocks full content.

Sign up free to start practicing. Premium unlocks every question across all packs.

System Design · 68 MCQs

Browse all in System Design
CAP Theorem
QuizMedium
Load Balancer Algorithms
QuizEasy
Database Sharding Strategy
QuizHard
Cache Invalidation Strategy
QuizMedium
Microservices Communication
QuizMedium
Content Delivery Network
QuizMedium
Rate Limiting Strategies
QuizMedium
Event Sourcing Pattern
QuizHard
+ 60 more System Design MCQs

Algorithms · 77 MCQs

Browse all in Algorithms
Sorting Algorithm Stability
QuizEasy
Dynamic Programming Recognition
QuizMedium
Shortest Path Algorithm Selection
QuizMedium
Time Complexity Analysis
QuizHard
Binary Search Application
QuizMedium
Two Pointer Technique
QuizEasy
Recursion vs Iteration
QuizMedium
Greedy vs Dynamic Programming
QuizHard
+ 69 more Algorithms MCQs

Networking · 48 MCQs

Browse all in Networking
TCP vs UDP
QuizEasy
HTTP Status Codes
QuizEasy
DNS Resolution
QuizMedium
TLS/HTTPS Handshake
QuizHard
WebSocket vs Server-Sent Events
QuizMedium
Cross-Origin Resource Sharing
QuizMedium
TCP Three-Way Handshake
QuizEasy
REST vs GraphQL
QuizMedium
+ 40 more Networking MCQs

Operating Systems · 45 MCQs

Browse all in Operating Systems
Processes vs Threads
QuizEasy
Deadlock Conditions
QuizMedium
Virtual Memory
QuizMedium
CPU Scheduling
QuizHard
Context Switching
QuizMedium
File System Design
QuizHard
Memory Allocation Strategies
QuizMedium
Inter-Process Communication
QuizMedium
+ 37 more Operating Systems MCQs

Data Structures · 44 MCQs

Browse all in Data Structures
Hash Table Collision Resolution
QuizEasy
Binary Tree Traversal
QuizEasy
Implementing Queue with Stacks
QuizMedium
Heap Operations Complexity
QuizMedium
Trie Data Structure
QuizMedium
LRU Cache Implementation
QuizHard
Bloom Filter
QuizHard
Graph Representation
QuizMedium
+ 36 more Data Structures MCQs

Behavioral · 63 MCQs

Browse all in Behavioral
Handling Disagreements
QuizEasy
Learning from Failure
QuizMedium
Task Prioritization
QuizMedium
Handling Ambiguity
QuizHard
Tell Me About Yourself
QuizEasy
Greatest Strength
QuizEasy
Greatest Weakness
QuizEasy
Why This Role?
QuizEasy
+ 55 more Behavioral MCQs

Databases · 49 MCQs

Browse all in Databases
ACID Properties
QuizEasy
Database Indexing
QuizMedium
NoSQL Database Selection
QuizMedium
Transaction Isolation Levels
QuizHard
Database Normalization
QuizMedium
Database Replication
QuizHard
SQL Join Types
QuizEasy
Query Optimization
QuizHard
+ 41 more Databases MCQs

System Design - Coding challenges · 2 challenges

Browse all coding challenges →
Token-Bucket Rate Limiter
CodeHard
Design Twitter
CodeHard

Algorithms - Coding challenges · 80 challenges

Browse all coding challenges →
Maximum Subarray
CodeMedium
Binary Search
CodeEasy
Climbing Stairs
CodeEasy
Move Zeroes
CodeEasy
+ 72 more Algorithms coding challenges

Operating Systems - Coding challenges · 5 challenges

Browse all coding challenges →
Print Zero, Even, Odd in Order
CodeHard
Building H2O
CodeHard
Dining Philosophers
CodeHard
FizzBuzz Multithreaded
CodeHard
Traffic Light Controller
CodeHard

Data Structures - Coding challenges · 30 challenges

Browse all coding challenges →
Contains Duplicate
CodeEasy
Merge Two Sorted Lists
CodeEasy
Intersection of Two Arrays II
CodeEasy
First Unique Character in a String
CodeEasy
Group Anagrams
CodeMedium
Number of Islands
CodeMedium
Course Schedule
CodeMedium
+ 22 more Data Structures coding challenges

Databases - Coding challenges · 25 challenges

Browse all coding challenges →
SQL: Customers Who Placed Orders (INNER JOIN)
CodeEasy
SQL: Customers Without Orders (LEFT JOIN ... IS NULL)
CodeEasy
SQL: Employees Earning More Than Their Manager (Self Join)
CodeEasy
SQL: Reconcile Two Sources (FULL OUTER JOIN)
CodeMedium
SQL: Date x Product Matrix (CROSS JOIN)
CodeMedium
SQL: Order Count Per Customer (GROUP BY)
CodeEasy
SQL: Big Spenders (GROUP BY + HAVING)
CodeMedium
SQL: Average Order Value by Month (DATE_TRUNC)
CodeMedium
+ 17 more Databases coding challenges

Practice in mock interview format

Behavioral and system design rounds reward practice with a live AI interviewer that probes follow-ups, not silent reading.

Start an AI mock interview →

Frequently asked questions

Do I need to know Elixir/Erlang to interview at Discord?

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.

What does the realtime system design round actually look like?

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.

How does Discord scale chat for 1M-member guilds?

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.

How real is the operational-ownership culture?

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.

How does Discord compare to Slack, Twitch, or WhatsApp as an interview target?

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.

What is comp like at Discord?

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+.

Other prep packs