How Reddit interviews
1. The shape of a Reddit loop
Reddit is smaller than the FAANGs. The loop reflects that. You're not going through a hiring committee that's never met you. You're talking to the people you'd actually work with, and one of them probably owns the slice of the product you'd ship to on day one.
A typical onsite is four rounds. One coding, one system design, one behavioral, one team-fit with the hiring manager. Sometimes a fifth round for senior IC roles — usually a second design round focused on a Reddit-specific primitive (the vote system, the comment tree, the hot-ranking algorithm). Rounds are 45 to 60 minutes. The whole loop is one day, often remote.
The interviewers are senior engineers and EMs from the team you'd join. They will tell you what they're working on. They will ask what you'd want to work on. The team-fit signal is real here in a way it isn't at Google or Meta.
2. What Reddit grades you on
Three things, roughly equally weighted.
Technical depth on Reddit-shaped problems. The design rounds are not generic. They will ask you to design something Reddit actually ships — a feed, a vote system, a comment tree, a moderation queue. Generic answers ("I'd use a microservices architecture") score badly. They want to know if you can reason about the actual primitives Reddit runs on.
Product sense about community. Reddit is a community-driven product. Engineers ship features that change how millions of subreddits self-govern. If you've never thought about why brigading is bad, why vote manipulation matters, or why moderators are volunteers and not employees, you'll struggle in the design rounds. The interviewer wants to see that you understand the social dynamics, not just the technical primitives.
Pragmatic engineering. Reddit ships fast. The interviewers want to know if you can build something that works today, not a perfect system that takes a year. "What's the simplest version of this that ships in two weeks?" is a real question they ask.
3. What's different here
- Reddit's stack is unusual. Historically Python and PostgreSQL with heavy caching. Recent shift to other languages (Go, Rust) for the hot path. The interviewer won't expect you to know Reddit's specific stack, but knowing they ran on Python for a decade tells you about the tradeoffs they're used to thinking about (caching everything, fan-out reads, lots of memcached).
- The primitives are concrete and visible. Votes, comments, subreddits, moderation. You use these every day if you've used Reddit. The interviewer assumes you've used the product. If you say "I don't really use Reddit," you've lost the round.
- Community signals matter. Brigading (a coordinated downvote attack from outside a subreddit), vote manipulation (bots), and content moderation aren't edge cases. They're the core problem. Design answers that ignore them score badly.
- Smaller scale than FAANG, but still huge. Reddit has roughly 500M monthly users and ships under 100K requests per second sustained on the read path. That's two orders of magnitude smaller than Google. You can mention real numbers without being intimidated.
- The take-home is often code. Reddit gives code take-homes more often than design-doc take-homes. Build a small service. Make it work. Tests pass on a clean clone.
4. The level bar
How the bar shifts:
- L4 / L5 (mid / senior IC) — design at the competent IC level. Scope is graded. You should be able to draw the right diagram for a Reddit-shaped problem. Depth on one seam is expected. Brigading, vote manipulation, and moderation should at least be named as concerns.
- L6 (staff) — design at the systems thinker level. The tradeoff sentence is expected for every major choice. You should be able to compare Reddit's approach to how Meta or Twitter would do the same thing. Anti-fraud and the social dynamics are graded explicitly.
- L7+ (senior staff / principal) — design at the organization level. You're not just designing the system. You're explaining how the team owns it, how it interacts with the community team, and how you'd roll out a change to a community-sensitive feature without causing a revolt.
In this course, Ch 12 units target L5 by default, with one L6 unit on the hot-ranking algorithm.
5. The Reddit-flavored mistakes
Watch for:
- Treating a subreddit like a Facebook group. Subreddits are not groups. They're self-governing communities with volunteer moderators. The design has to make moderation a first-class primitive, not an afterthought.
- Ignoring brigading. A coordinated downvote from outside a subreddit is the most common attack. If your feed design treats every vote equally, you've shipped a system that gets gamed in week one.
- Designing comments as a flat list. Reddit's comments are a tree. Sometimes 50 levels deep. The storage model matters. The pagination model matters. The "show more" expansion is a real UX primitive.
- Skipping the vote system as "just a counter." Votes are upvotes, downvotes, and removes. Users can change their vote. The score is upvotes minus downvotes, but the ranking uses something more complex. If you design it as a counter you've missed the whole question.
- Forgetting per-subreddit configuration. Each subreddit has its own rules, moderators, automod config, and culture. The system has to support per-subreddit settings as a primitive, not a hack.
6. The seven scenarios in this chapter
Each unit takes one Reddit-shaped question end to end. The chapter covers:
- 12.1 Subreddit feed — vote-weighted, anti-brigade — per-subreddit feed ranking, merging across subscribed subreddits, brigade detection.
- 12.2 Comment tree — deeply nested — storage model for trees, pagination, "show more" expansion, sibling ranking.
- 12.3 Reddit vote system — idempotent — votes as idempotent operations per (user, post), change-vote semantics, anti-fraud.
- 12.4 The Reddit hot-ranking algorithm — the famous formula, why log of votes, why the 45000 constant, online vs batch.
- 12.5 Subreddit moderation queue — automod rules, report queue, moderator actions, audit log.
- 12.6 Cross-subreddit notifications — reply notifications, mentions, fan-in across subscribed subreddits, real-time vs batch delivery.
- 12.7 Take-home — hot-ranking service — code take-home, build a TypeScript service implementing the hot algorithm.
7. The next page
The first scenario: the subreddit feed. Ranked by vote-weighted hot, robust against brigading, merged across the subreddits each user follows.