← Meta Interview Insights

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

SeniorPrefer not to say
May 2026

Summary

System design round at Meta for a software engineer role. The whole thing was basically 'build Instagram' which sounds straightforward until you're 20 minutes in and the interviewer wants to talk about hybrid feed generation and you realize you prepped the wrong depth on that topic.

Questions Asked (6)

Q1

Design a photo and video sharing platform similar to Instagram. Walk through functional requirements, non-functional requirements, and your overall architecture.

System DesignTechnical Trade-offs
Author's notes

I started with requirements which felt right, read-heavy workload, latency sensitivity, high availability.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the scope and scale with the interviewer, then systematically cover functional and non-functional requirements before diving into a high-level architecture. Focus on key components like feed generation, media storage, and scalability, and be prepared to discuss trade-offs.

Pro tip: Emphasize the read-heavy nature of the system and how you would optimize for it, such as using CDNs and caching. Also, proactively discuss trade-offs between consistency and availability, showing you understand real-world constraints.

1. Clarify Requirements

Ask questions to understand the scope: expected scale (users, photos, videos), core features (upload, feed, follow, like, comment), and any specific constraints. This ensures you're solving the right problem.

2. Define Functional and Non-Functional Requirements

List the key functional requirements (e.g., user can upload media, follow others, view feed) and non-functional requirements (e.g., low latency, high availability, scalability, durability). Prioritize them based on the interviewer's input.

3. High-Level Architecture

Sketch the main components: client, API gateway, services (user, media, feed, etc.), databases (SQL/NoSQL), object storage for media, CDN, and caching layers. Explain how data flows through the system.

4. Deep Dive into Key Components

Pick 1-2 critical areas to detail, such as feed generation (push vs. pull model) or media storage and delivery (upload pipeline, transcoding, CDN). Discuss trade-offs and justify your choices.

5. Address Scalability and Trade-offs

Discuss how the system scales (sharding, replication, caching), handles bottlenecks, and trade-offs (e.g., consistency vs. latency, cost vs. performance). Mention monitoring and failure handling.

Key Points to Mention

  • Feed generation strategies: fan-out on write vs. fan-out on read, and hybrid approaches for celebrities.
  • Media storage and delivery: using object storage (e.g., S3) for media, CDN for global distribution, and transcoding for videos.
  • Database choices: SQL for user data and relationships, NoSQL (e.g., Cassandra) for feed and metadata due to scalability.
  • Caching: Redis/Memcached for hot data like feeds and user sessions to reduce latency.
  • Scalability: horizontal scaling, sharding, replication, and load balancing.
  • Trade-offs: consistency vs. availability (CAP theorem), latency vs. cost, and push vs. pull for feeds.

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

Q2

How would you handle media storage and delivery at scale for hundreds of millions of users?

System DesignTechnical Trade-offs
Author's notes

Object store plus CDN, pretty standard answer.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements (e.g., media types, read/write ratio, latency, durability) and then propose a high-level architecture that separates storage, processing, and delivery. Emphasize scalability, fault tolerance, and cost-efficiency, and discuss trade-offs between consistency, latency, and cost.

Pro tip: Demonstrate awareness of Meta's specific scale and existing infrastructure (e.g., Haystack, f4, Tao) by mentioning how your design could integrate with or learn from them. Also, proactively discuss monitoring and failure handling to show operational maturity.

1. Clarify Requirements

Ask questions to understand the scope: media types (photos, videos), upload/download patterns, latency requirements, durability, and budget constraints. This ensures your design targets the right problems.

2. High-Level Architecture

Outline the main components: ingestion service, storage layer (blob store), metadata service, processing pipeline (transcoding, thumbnailing), and CDN for delivery. Explain how they interact.

3. Deep Dive into Storage

Discuss storage options: object storage (e.g., S3-like) for blobs, distributed file systems, or custom solutions like Haystack. Cover data partitioning, replication, and consistency models.

4. Delivery and Caching

Explain how to serve media efficiently using CDNs, edge caching, and adaptive bitrate streaming for videos. Address cache invalidation and geographic distribution.

5. Scalability and Reliability

Discuss how to scale each component horizontally, handle failures (replication, erasure coding), and ensure availability. Mention monitoring, alerting, and capacity planning.

Key Points to Mention

  • Use of CDN and edge caching to reduce latency and offload origin servers.
  • Storage tiering: hot vs. cold storage to optimize cost (e.g., S3 Infrequent Access, Glacier).
  • Data partitioning and sharding strategies to distribute load and enable horizontal scaling.
  • Trade-offs between consistency and availability (CAP theorem) and how to choose based on media type.
  • Asynchronous processing pipelines for transcoding and thumbnailing to decouple ingestion from processing.
  • Fault tolerance via replication, erasure coding, and multi-region deployment.

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

Q3

Compare push, pull, and hybrid approaches for generating a user's news feed. Which would you choose and why?

System DesignTechnical Trade-offs
Author's notes

This was the part I was least prepared for in terms of actual trade-off depth.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by defining the three approaches and their trade-offs in terms of latency, cost, and scalability. Then, discuss how each handles key challenges like fan-out on write vs. read, and finally recommend a hybrid approach that balances these trade-offs, justifying your choice with concrete examples.

Pro tip: Emphasize that the choice depends on user behavior and system constraints, and that a hybrid approach often works best by combining push for active users and pull for inactive or celebrity users. Mention that Meta's news feed uses a hybrid model to optimize for both performance and cost.

1. Define the approaches

Briefly explain push (fan-out on write), pull (fan-out on read), and hybrid models, including how they generate a user's news feed.

2. Analyze trade-offs

Compare latency, read/write amplification, storage cost, and scalability for each approach, highlighting scenarios where each excels or fails.

3. Consider real-world constraints

Discuss factors like user activity patterns, celebrity users, and infrastructure costs that influence the choice.

4. Recommend and justify

Choose a hybrid approach and explain how it mitigates the downsides of pure push or pull, with examples of how to implement it.

Key Points to Mention

  • Push model: low read latency but high write amplification and storage cost, especially for users with many followers.
  • Pull model: low write cost but high read latency and computational cost at read time, especially for users following many accounts.
  • Hybrid model: combines push for active users and pull for inactive or celebrity users, balancing latency and cost.
  • Fan-out on write vs. fan-out on read: the core trade-off between precomputing feeds and generating on demand.
  • Celebrity problem: how to handle users with millions of followers without overwhelming the system.
  • Caching and precomputation: strategies to optimize performance in each model.

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

Q4

How would you approach caching in this system, and what data would you prioritize caching?

System DesignData Modeling
Author's notes

Talked about feed caches, user profile caches, and media metadata.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the system's requirements and access patterns, then propose a layered caching strategy (client, CDN, application, database) with appropriate eviction policies. Prioritize caching data based on read/write ratio, access frequency, and tolerance for staleness, and discuss trade-offs like consistency vs. latency.

Pro tip: Always tie caching decisions back to business metrics (e.g., QPS, latency SLOs) and explicitly address cache invalidation and stampede protection—these are common failure points in production.

1. Clarify requirements and access patterns

Ask about read/write ratio, data size, latency targets, consistency needs, and traffic patterns to ground your caching strategy.

2. Identify caching layers

Propose caching at multiple layers: client-side, CDN, application-level (e.g., Redis), and database query cache, explaining the role of each.

3. Prioritize data to cache

Select data based on frequency of access, cost of recomputation, and staleness tolerance—e.g., user sessions, hot content, reference data.

4. Define eviction and invalidation policies

Choose eviction strategies (LRU, LFU, TTL) and invalidation mechanisms (write-through, write-behind, pub/sub) based on consistency requirements.

5. Address scalability and failure modes

Discuss cache stampede protection, sharding, replication, and monitoring to ensure reliability under load.

Key Points to Mention

  • Cache invalidation strategies (TTL, write-through, write-behind, event-driven)
  • Eviction policies (LRU, LFU, FIFO) and their trade-offs
  • Cache stampede/thundering herd mitigation (e.g., locks, probabilistic early expiration)
  • Consistency models (strong vs. eventual) and their impact on user experience
  • Metrics to monitor (hit ratio, latency, eviction rate) and when to scale
  • Cost-benefit analysis: memory vs. latency vs. consistency

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

Q5

Walk through your data model for this system. What are the core entities and relationships?

Data ModelingSystem Design
Author's notes

Users, posts, follows, likes, comments.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the system's scope and primary use cases, then identify the core entities and their relationships using an entity-relationship diagram or textual description. Walk through the model from a high-level overview to key attributes and access patterns, justifying design choices based on requirements and scalability.

Pro tip: Emphasize how your data model supports the system's read/write patterns and scalability needs, and mention any trade-offs you considered (e.g., normalization vs. denormalization) to show depth.

1. Clarify Requirements and Scope

Ask clarifying questions to understand the system's purpose, scale, and key operations. This ensures your data model aligns with actual needs.

2. Identify Core Entities

List the main objects or concepts in the system (e.g., User, Post, Comment) and briefly describe their purpose.

3. Define Relationships and Cardinality

Describe how entities relate (one-to-many, many-to-many) and specify cardinality. Use examples to illustrate.

4. Detail Key Attributes and Access Patterns

For each entity, mention important fields and how they will be queried or updated, linking to performance considerations.

5. Discuss Trade-offs and Scalability

Explain design decisions such as normalization, indexing, or sharding, and how they address scale and consistency requirements.

Key Points to Mention

  • Entity-relationship diagram or clear textual representation
  • Primary keys, foreign keys, and indexes for efficient access
  • Normalization vs. denormalization trade-offs
  • Handling many-to-many relationships with join tables
  • Scalability considerations: sharding, replication, and partitioning
  • Alignment with read/write patterns and consistency requirements

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

Q6

How would you shard the database and scale the overall system to support hundreds of millions of users?

System DesignTechnical Trade-offs
Author's notes

Sharding by user ID was my go-to.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and constraints, then propose a high-level architecture that addresses scaling from the ground up. Focus on sharding strategies, data partitioning, replication, and trade-offs between consistency and availability, while emphasizing horizontal scaling and fault tolerance.

Pro tip: Demonstrate awareness of Meta's specific challenges by mentioning real-world examples like sharding by user ID and using consistent hashing, and discuss how to handle hotspots and rebalancing without downtime.

1. Clarify Requirements and Constraints

Ask about read/write patterns, latency requirements, consistency needs, and data size to tailor the design. Establish assumptions like global distribution and high availability.

2. High-Level Architecture

Outline a layered approach: load balancers, stateless services, caching, and a sharded database. Mention using a distributed database or custom sharding layer.

3. Sharding Strategy

Choose a shard key (e.g., user ID) and partitioning method (hash-based, range-based). Discuss consistent hashing to minimize rebalancing and techniques for handling hotspots.

4. Scaling and Replication

Explain replication for read scalability and fault tolerance, and how to scale writes via sharding. Cover cross-shard queries and distributed transactions if needed.

5. Trade-offs and Operational Considerations

Discuss trade-offs: consistency vs. availability, latency vs. durability. Mention monitoring, rebalancing, and failure recovery.

Key Points to Mention

  • Sharding key selection and its impact on performance and scalability
  • Consistent hashing and virtual nodes for even distribution and minimal rebalancing
  • Replication strategies (master-slave, multi-master) for read scaling and fault tolerance
  • Caching layers (e.g., Memcached, Redis) to reduce database load
  • Handling hotspots and rebalancing shards without downtime
  • Trade-offs between consistency models (e.g., eventual vs. strong consistency) and their implications

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