← Meta Interview Insights

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

Senior
May 2026

Summary

Meta infrastructure engineer system design round, full Instagram from scratch. Pretty classic for this level but the scope was broad enough that you really have to pick your battles on where to go deep.

Questions Asked (4)

Q1

Design Instagram end-to-end, covering photo uploads, follows, a personalized home feed, likes and comments, profiles, and search.

System DesignTechnical Trade-offs
Author's notes

The scope is massive and the first few minutes are basically a trap if you try to cover everything.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and scale, then design the core data model and APIs for each feature, and finally dive deep into the feed generation and fan-out strategy. Focus on trade-offs between push and pull models for the feed, and how to handle hot users and celebrity accounts.

Pro tip: Emphasize the hybrid fan-out approach: push for normal users and pull for celebrities, and discuss how to handle feed ranking with machine learning. Also, mention the importance of idempotency and deduplication in likes and comments to handle retries.

1. Clarify Requirements and Scale

Ask about functional and non-functional requirements: daily active users, read/write ratio, latency targets, and consistency needs. Estimate storage and bandwidth for photos and metadata.

2. High-Level Architecture and Data Model

Sketch the main components: clients, API gateway, services (user, photo, feed, social graph, search), and storage (object store, SQL/NoSQL, cache). Define core entities: User, Photo, Follow, Like, Comment.

3. Deep Dive: Photo Upload and Storage

Design the upload flow: client requests pre-signed URL, uploads directly to object storage, then notifies service to process (resize, thumbnail, metadata). Discuss CDN for serving images.

4. Deep Dive: Feed Generation and Fan-out

Explain the hybrid fan-out: on photo upload, push to followers' feed caches for normal users; for celebrities, pull their posts at read time. Discuss feed ranking and pagination.

5. Deep Dive: Social Graph, Likes, Comments, and Search

Design the social graph storage (e.g., adjacency list with sharding). For likes/comments, use a distributed counter and store comments in a scalable DB. For search, use inverted index and consider Elasticsearch.

Key Points to Mention

  • Hybrid fan-out (push/pull) for feed generation to handle celebrities and hot users
  • Pre-signed URLs for direct photo upload to object storage (e.g., S3) to offload API servers
  • Sharding and replication strategies for the social graph and user data
  • Caching strategies (Redis/Memcached) for feed, user profiles, and counters
  • Idempotency and deduplication for likes and comments to handle retries
  • Search implementation using inverted index and possibly Elasticsearch for scalability

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

Q2

How would you handle feed generation at scale, and what are the trade-offs between pushing updates on write versus pulling them on read?

System DesignTechnical Trade-offsData Modeling
Author's notes

This is where it got interesting.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the requirements and scale (e.g., number of users, read/write ratio, latency SLAs). Then compare push (fan-out on write) and pull (fan-out on read) models, discussing hybrid approaches and trade-offs like latency, cost, and complexity. Conclude with a recommendation tailored to the scenario.

Pro tip: Emphasize that the choice depends on the specific use case: push is great for low-latency reads but can be expensive for high fan-out, while pull is simpler but may add read latency. Mention that real systems often use a hybrid approach, like push for active users and pull for inactive ones.

1. Clarify Requirements

Ask about scale (users, QPS), read/write ratio, latency requirements, and consistency needs to frame the problem.

2. Explain Push Model

Describe fan-out on write: when a user posts, the update is pushed to all followers' feeds. Discuss pros (fast reads) and cons (write amplification, high latency for celebrities).

3. Explain Pull Model

Describe fan-out on read: feeds are generated on demand by pulling posts from followed users. Discuss pros (simple writes, no precomputation) and cons (slower reads, repeated work).

4. Compare Trade-offs

Contrast the two models on dimensions like latency, cost, scalability, and complexity. Highlight scenarios where each excels.

5. Propose Hybrid Solution

Suggest a hybrid approach (e.g., push for most users, pull for celebrities) and discuss how to handle edge cases like inactive users or ranking.

Key Points to Mention

  • Fan-out on write vs. fan-out on read
  • Write amplification and read latency trade-offs
  • Celebrity problem and hybrid approaches
  • Caching strategies (e.g., Redis, memcached) for feed storage
  • Ranking and personalization (e.g., EdgeRank)
  • Consistency and eventual consistency models

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

Q3

Walk through your data model and storage choices for users, follows, feeds, and media.

Data ModelingSystem Design
Author's notes

Relational for users and follow graph, key-value for precomputed feeds, blob storage plus CDN for media.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the scale and access patterns (e.g., read-heavy feeds, write-heavy follows) to justify your choices. Then walk through each entity—users, follows, feeds, media—describing the data model (SQL vs NoSQL, schema) and storage engine (e.g., MySQL, Cassandra, S3) with trade-offs. Finally, tie it together by explaining how data flows between components to serve a feed.

Pro tip: Emphasize denormalization and caching for feed generation, and mention how you'd handle hot users (celebrities) with fan-out on write vs read. This shows you understand real-world trade-offs at Meta scale.

1. Clarify Requirements and Scale

Ask about expected scale (DAU, QPS), read/write ratio, latency requirements, and consistency needs. This sets the stage for justified design choices.

2. Model Users and Follows

Propose a user table (SQL or wide-column) with user ID, profile info, and a follow graph (e.g., adjacency list in a graph DB or denormalized tables). Discuss sharding by user ID.

3. Design Feed Storage and Generation

Explain feed options: fan-out on write (precomputed timelines) vs fan-out on read (pull-based). Choose a hybrid for celebrities, and describe storage (e.g., Redis for hot feeds, Cassandra for persistent timelines).

4. Handle Media Storage

Store media in blob storage (e.g., S3) with CDN for delivery. Keep metadata (URL, dimensions, owner) in a database, and discuss deduplication and transcoding pipelines.

5. Summarize Trade-offs and Evolution

Recap key decisions (e.g., denormalization, caching) and how they address scale. Mention potential bottlenecks and how you'd evolve the design (e.g., adding a graph DB for follows).

Key Points to Mention

  • Sharding and partitioning strategies for users and follows (e.g., by user ID, consistent hashing).
  • Fan-out on write vs fan-out on read for feed generation, and hybrid approach for celebrities.
  • Use of caching (Redis/Memcached) for hot feeds and user sessions.
  • Media storage in blob stores (S3) with CDN and metadata in a database.
  • Denormalization for read efficiency and trade-offs with consistency.
  • Choice of databases: SQL for user data, wide-column (Cassandra) for feeds, graph for social graph.

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

Q4

Pick one area of the design to go deeper on. How would you handle the media upload pipeline, hot celebrity fan-out, feed ranking, or notification delivery?

System DesignTechnical Trade-offs
Author's notes

I picked the celebrity fan-out problem since we'd already touched it.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Pick the area where you have the strongest technical depth and can clearly articulate trade-offs, then structure your answer around requirements, high-level design, deep dive, and trade-offs. Show how your solution scales, handles failures, and meets latency/consistency needs, while proactively comparing alternatives.

Pro tip: Choose the area that naturally connects to the rest of the system design you've already discussed, and explicitly state why you're choosing it—this shows strategic thinking and avoids appearing random. Also, quantify where possible (e.g., QPS, storage, latency targets) to demonstrate practical experience.

1. Clarify Requirements and Scale

Ask clarifying questions to understand functional and non-functional requirements, such as expected QPS, data volume, latency targets, and consistency needs. Establish the scope and constraints before diving in.

2. High-Level Design

Sketch the main components and data flow for the chosen area, identifying key services, storage, and messaging. Keep it abstract but cover the end-to-end path.

3. Deep Dive into Critical Components

Zoom into the most challenging parts, such as data partitioning, caching, consistency, or failure handling. Explain your design choices and how they address the requirements.

4. Discuss Trade-offs and Alternatives

Compare your approach with alternative solutions, highlighting pros and cons in terms of scalability, latency, cost, and complexity. Justify why your design is optimal for the given constraints.

5. Address Bottlenecks and Failure Modes

Identify potential bottlenecks and single points of failure, and describe mitigation strategies like replication, sharding, or backpressure. Show proactive thinking about reliability and operability.

Key Points to Mention

  • Scalability: horizontal scaling, sharding, partitioning strategies
  • Latency and throughput requirements, and how design meets them
  • Data consistency models (e.g., eventual vs strong) and their implications
  • Caching strategies (CDN, Redis, local caches) and invalidation
  • Failure handling: retries, idempotency, dead-letter queues, circuit breakers
  • Monitoring and metrics: tracking key performance indicators and alerting

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