← Meta Interview Insights

Meta·Software Engineer·Onsite - System Design / Architecture·Senior

SeniorPrefer not to say
May 2026

Summary

Meta system design round, got asked to design Reddit. Pretty open-ended, which I wasn't fully prepared for.

Questions Asked (1)

Q1

Design Reddit. Walk through the architecture for a large-scale social news and discussion platform.

System DesignTechnical Trade-offsData Modeling
Author's notes

Spent the first few minutes just trying to nail down scope because Reddit does a lot of things.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying functional and non-functional requirements, then estimate scale (users, posts, votes, comments) to drive design decisions. Propose a high-level architecture with clear separation of concerns (e.g., services for posts, comments, votes, feeds) and dive into critical components like data storage, caching, and feed generation. Discuss trade-offs (e.g., SQL vs NoSQL, push vs pull for feeds) and how to handle scale, consistency, and availability.

Pro tip: Emphasize the read-heavy nature of Reddit and how caching and denormalization are key; also, proactively discuss how to handle hot posts and viral content to show you think about real-world scaling challenges.

1. Clarify Requirements and Scale

Ask questions to understand core features (subreddits, posts, comments, voting, ranking) and non-functional needs (latency, consistency, availability). Estimate scale: e.g., 500M monthly users, 10M posts/day, 100M votes/day, read:write ratio ~100:1.

2. High-Level Architecture

Sketch main components: client, API gateway, microservices (user, post, comment, vote, feed), data stores (SQL for transactions, NoSQL for scale, cache), and message queues for async processing. Explain how they interact.

3. Data Modeling and Storage

Design schemas for users, subreddits, posts, comments, votes. Choose databases: e.g., PostgreSQL for user/subreddit metadata, Cassandra for posts/comments (high write throughput), Redis for caching and vote counts. Discuss sharding and replication.

4. Feed Generation and Ranking

Explain how to generate personalized feeds (home, subreddit, popular). Compare push (fan-out on write) vs pull (fan-out on read) models, and propose a hybrid. Describe ranking algorithm (e.g., hot score based on votes and time) and how to update it efficiently.

5. Scaling, Consistency, and Trade-offs

Address bottlenecks: caching strategies (CDN, Redis), handling hot posts (sharding by post ID, local caching), eventual consistency for votes/comments, and CAP theorem trade-offs. Discuss monitoring, failure recovery, and cost optimization.

Key Points to Mention

  • Read-heavy workload and the need for aggressive caching (e.g., Redis, CDN) and denormalization.
  • Database choices: SQL for transactional data (users, subreddits) and NoSQL (Cassandra) for high-volume posts/comments/votes.
  • Feed generation strategies: push vs pull vs hybrid, and how to handle celebrity/hot posts.
  • Ranking algorithm (e.g., Reddit's hot score) and efficient computation using vote counts and timestamps.
  • Sharding and replication strategies for scalability and fault tolerance.
  • Eventual consistency for votes and comments, and how to handle conflicts (e.g., using CRDTs or last-write-wins).

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.