Backend Engineer at Discord: Elixir, Rust, Trillion-Message Scale (2026)
In short
Discord is the chat-and-community platform that publicly migrated parts of its backend from Go to Rust and runs the messaging hot path on Elixir. Backend engineers work on the messaging infrastructure (trillions of messages stored), the presence service (millions of concurrent users tracked in real time), the voice-and-video infrastructure, and the platform APIs. Levels run SWE I through Distinguished with senior+ comp commonly clearing $390,000-$1,200,000+ per levels.fyi 2026. The interview emphasizes systems-design depth at scale plus production-engineering judgment in a real-time-traffic environment.
Key takeaways
- Discord stores trillions of messages. The 2023 engineering post (discord.com/blog/how-discord-stores-trillions-of-messages) describes the migration from Cassandra to ScyllaDB and is the canonical reference for the messaging-storage architecture; senior+ candidates are expected to articulate the trade-offs.
- Discord publicly migrated parts of its backend from Go to Rust. The 2020 post (discord.com/blog/why-discord-is-switching-from-go-to-rust) covers the GC-pause-driven decision and is the canonical Rust-at-scale industry reference. The Elixir messaging hot path persists.
- The Elixir-based messaging service handles real-time chat at scale. The 2017 engineering post (discord.com/blog/scaling-elixir-f9b8e1e7c29b) describes how Discord scaled the Elixir / OTP architecture to millions of concurrent users; senior+ candidates cite the BEAM VM and OTP supervision-tree judgment.
- Levels at Discord: SWE I (junior) through SWE II, Senior SWE, Staff SWE, Senior Staff, Principal, Distinguished. Total comp at Senior commonly $390k-$580k, Staff $560k-$830k, Principal $830k-$1.2M+ per levels.fyi 2026 (levels.fyi/companies/discord/salaries/software-engineer).
- The interview is moderately FAANG-shaped per public candidate retrospectives: phone screen plus 4-5 onsite rounds with two coding, one systems-design (often messaging-flavored), one behavioral. Senior+ rounds add an Elixir / Rust / scaling deep-dive depending on team.
- Discord's backend hiring bar in 2026 emphasizes real-time-systems depth, BEAM VM (Elixir / Erlang / OTP) fluency for messaging-team roles, Rust depth for performance-critical-services teams, and large-scale-storage judgment (the ScyllaDB migration is canonical).
What backend engineering at Discord actually looks like
Discord's backend organization is structured around real-time-traffic-critical surfaces:
- Messaging. The hot-path messaging service runs on Elixir / OTP. The 2017 post (discord.com/blog/scaling-elixir-f9b8e1e7c29b) describes the architecture; backend engineers here work on the BEAM VM optimizations, supervision-tree design, and the cross-cluster routing.
- Message storage. The 2023 post (discord.com/blog/how-discord-stores-trillions-of-messages) describes the migration from Cassandra to ScyllaDB. Backend engineers here partner with the database-team on consistency, partitioning, and cross-region replication.
- Performance-critical services. The 2020 Go-to-Rust post (discord.com/blog/why-discord-is-switching-from-go-to-rust) describes the migration of the read-states service. Backend engineers here ship in Rust at the level of allocator tuning and memory-layout optimization.
- Presence service. The system that tracks which users are online, in-voice, in-game, AFK. Real-time fan-out at the millions-of-concurrent-users scale. The presence service is one of Discord's most distinctive technical surfaces.
- Voice and video. WebRTC infrastructure plus the proprietary SFU (selective forwarding unit) layer. Backend engineers here partner with the audio / video research team on codec optimization and geographic routing.
- Platform APIs and developer tools. The public Discord API at discord.com/developers/docs — bots, slash commands, the activity SDK. Backend engineers here ship the public REST and WebSocket Gateway APIs.
The engineering org is mid-large (~600+ engineers as of 2026 per public Discord disclosures, distributed across San Francisco and remote regions). The engineering culture is unusually open about scaling-failure post-mortems and backend-architecture decisions; the engineering blog is a high-quality public reference.
The interview at Discord: format and what's tested
The Discord interview format per public Glassdoor reports, Reddit r/cscareerquestions retrospectives, and the careers page (discord.com/jobs):
- Recruiter screen. 30 minutes. Background, motivation, role alignment.
- Technical phone screen. 60-75 minutes. Live coding on a medium-difficulty algorithm problem. The bar is FAANG-shaped at the screen; Discord is moderately LeetCode-leaning.
- Onsite — coding round. 60 minutes. A second medium-to-hard algorithm or systems problem.
- Onsite — systems-design round. 60-75 minutes. A messaging-flavored or real-time-fan-out design problem (design the presence service, design the message-delivery pipeline, design the scaling strategy for a 10M-concurrent-user voice channel, design a cross-region message replication scheme). The bar is articulating trade-offs at the real-time-systems level — strong vs eventual consistency, push vs pull, in-memory vs persisted, fan-out-on-write vs fan-out-on-read.
- Onsite — domain / experience round. 60 minutes. Conversation about your past work with a deep technical drill-down. For senior+ backend, the round often explores BEAM VM fluency (Elixir / OTP) or Rust-at-scale judgment depending on team.
- Onsite — behavioral / cross-functional. 45-60 minutes. Past work, cross-functional partnership, scope-of-impact stories. Discord weights cross-functional fluency given the cohesive product-and-engineering culture.
Senior+ rounds add a domain-specific deep dive (Elixir / OTP for messaging-team roles, Rust at scale for performance-critical-services teams, ScyllaDB / Cassandra for database-team roles).
Compensation: real bands at Discord (levels.fyi 2026)
Total comp at Discord for backend SWE (US, per levels.fyi 2026 self-reports — Discord is private as of early 2026; equity uses tender-offer pricing and the internal 409a valuation):
| Level | Base | Total comp |
|---|---|---|
| SWE I (junior) | $140k-$180k | $200k-$290k |
| SWE II (mid) | $170k-$220k | $280k-$420k |
| Senior SWE | $210k-$275k | $390k-$580k |
| Staff SWE | $255k-$330k | $560k-$830k |
| Senior Staff | $295k-$385k | $700k-$1.0M |
| Principal | $340k-$430k | $830k-$1.2M+ |
The reference is levels.fyi (levels.fyi/companies/discord/salaries/software-engineer). Discord pays at the upper SaaS-tier band; equity is private-company with valuation movement materially affecting realized comp. The compensation is competitive but typically below Stripe and Databricks at staff+.
What's load-bearing at Discord: the cultural and technical signals
Three signals to demonstrate at the Discord interview, drawn from the engineering blog (discord.com/blog) and public hiring posts:
- Real-time-systems judgment. Discord's distinctive surface is real-time chat at massive concurrent-user scale. Senior+ candidates are expected to articulate fan-out-on-write vs fan-out-on-read, push vs pull, presence-tracking architecture, and the trade-offs in cross-region message routing. Engineers from messaging, gaming-multiplayer, or real-time-collaboration backgrounds transfer cleanly.
- BEAM VM (Elixir / OTP) or Rust-at-scale fluency. The messaging hot path is Elixir; the performance-critical services are Rust. Senior+ candidates for these teams are expected to articulate OTP supervision trees, GenServer patterns, BEAM scheduler internals (for Elixir teams), or allocator-tuning, async runtime trade-offs, and zero-cost abstractions (for Rust teams). Public engineering writing covers both stacks.
- Public-engineering-writing culture. The Discord engineering blog is unusually deep; engineers who can write clear technical posts pre-screen well. New senior engineers are encouraged to contribute scaling post-mortems and architecture deep-dives.
What's NOT load-bearing at Discord: deep ML-research depth (separate org), pure frontend craft (separate org), startup-velocity-over-rigor patterns (the real-time-traffic-critical bar enforces correctness).
Frequently asked questions
- Do I need Elixir or Rust experience to interview at Discord?
- Helpful for messaging-team or performance-critical-services roles; not required for platform-API or developer-tools teams. The hiring bar weights real-time-systems judgment over Discord-specific language depth; engineers from gaming-multiplayer, large-scale messaging (Slack, WhatsApp historically), or real-time-collaboration backgrounds transfer cleanly. For BEAM VM or Rust teams specifically, demonstrated language depth matters more.
- What's the on-call expectation at Discord?
- Required at all levels for service-owning teams. Public candidate reports describe weekly rotations with primary and secondary; the messaging and presence services have heavier on-call given the real-time-traffic-critical surface. The bar at hire is articulating a real production incident you debugged and the post-mortem you wrote.
- Is Discord hiring backend engineers in 2026?
- Yes per public job postings at discord.com/jobs. Discord has continued hiring through the 2022-2024 reductions; the platform-API expansion (activities, voice infrastructure, AI features) drives sustained backend hiring. Senior+ backend with real-time-systems depth and BEAM VM or Rust experience is the dominant hiring profile.
- Why did Discord migrate from Cassandra to ScyllaDB?
- GC-pause-driven tail-latency issues at the trillion-message scale per the 2023 engineering post (discord.com/blog/how-discord-stores-trillions-of-messages). Cassandra's JVM GC introduced pause-driven p99 latency spikes that ScyllaDB's C++ shard-per-core architecture eliminates. Senior+ candidates are expected to articulate this trade-off and the broader Cassandra-vs-ScyllaDB consistency-and-throughput discussion.
- Why did Discord switch from Go to Rust for some services?
- Garbage-collection-driven tail-latency per the 2020 engineering post (discord.com/blog/why-discord-is-switching-from-go-to-rust). The read-states service had p99 latency spikes correlating with Go GC pauses; Rust's deterministic memory management eliminated them. Senior+ candidates cite this post as the canonical industry reference for choosing Rust over Go in latency-critical services.
- Can I work remotely at Discord?
- Some roles. Discord went hybrid in 2023 with a return-to-office requirement for the San Francisco hub on specific days; the careers page lists per-role remote availability. The engineering culture is async-friendly within the hub-collaboration constraints.
- How LeetCode-heavy is the Discord interview?
- Moderate per public candidate retrospectives. Phone screen and onsite coding rounds run medium-difficulty algorithm problems. Comparable to Cloudflare; lighter than Google or Databricks; heavier than Stripe. Engineers should expect 3-6 weeks of LeetCode-style preparation plus systems-design preparation focused on real-time-fan-out and messaging-storage problems.
- What's the engineering culture at Discord like day-to-day?
- Product-and-engineering-cohesive per public candidate reports. Discord ships a single product surface that engineers across the company use daily; the dogfooding culture is real. The engineering blog reflects an unusual openness about failure modes and architecture decisions. Cross-functional partnership with product is dense; backend engineers regularly partner with PM and design on user-visible features rather than working only on hidden infrastructure. Engineers who like high-bandwidth product collaboration align well; engineers who prefer pure-infrastructure roles with minimal product-context find Discord less natural.
Sources
- Discord Careers — official job postings and engineering values references.
- Discord Engineering — How Discord Stores Trillions of Messages (2023). The canonical Cassandra-to-ScyllaDB migration reference.
- Discord Engineering — Why Discord is Switching from Go to Rust (2020). The canonical Rust-at-scale industry reference.
- Discord Engineering — Scaling Elixir to 5,000,000 Concurrent Users (2017). The canonical BEAM-VM-at-scale reference.
- Discord Engineering Blog — messaging, presence, voice, and platform-architecture writing.
- levels.fyi — Discord SWE comp by level (self-reported, private-company tender-offer pricing).
About the author. Blake Crosley founded ResumeGeni and writes about backend engineering, hiring technology, and ATS optimization. More writing at blakecrosley.com.