← Meta Interview Insights

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

SeniorPrefer not to say
May 2026

Summary

Meta system design round for a software engineer role, basically a full-on deep dive into designing something like Instagram from scratch. They wanted everything: storage, CDN, feed ranking, sharding, the works. It was a lot to cover in one session.

Questions Asked (8)

Q1

Design a photo and short-video sharing platform similar to Instagram, covering the full system from functional requirements through to capacity estimates.

System DesignTechnical Trade-offsData Modeling
Author's notes

This was basically a marathon question.

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, photos, videos, storage, bandwidth). Design the high-level architecture covering upload, storage, feed generation, and delivery, and dive into key components like media storage, feed ranking, and caching. Discuss trade-offs and bottlenecks throughout.

Pro tip: Emphasize the unique challenges of video (transcoding, adaptive streaming) and the read-heavy nature of the feed, and propose a hybrid push-pull model for feed generation to balance latency and cost.

1. Clarify Requirements

Ask about core features (upload, feed, follow, like, comment, search), scale (DAU, media uploads), and non-functional needs (latency, availability, consistency).

2. Capacity Estimation

Estimate storage (photos/videos per day, size, replication), bandwidth (upload/download), and QPS for reads/writes. Use round numbers and state assumptions.

3. High-Level Design

Sketch components: clients, API gateway, services (user, media, feed, social graph), storage (object store, CDN, databases), and message queues.

4. Deep Dive into Key Components

Detail media upload/processing (transcoding, thumbnails), feed generation (fan-out on write vs read, ranking), and delivery (CDN, caching).

5. Address Trade-offs and Bottlenecks

Discuss consistency vs availability, push vs pull for feeds, storage costs, and how to handle hot users or viral content.

Key Points to Mention

  • Media storage and processing pipeline: object storage (e.g., S3), CDN for delivery, transcoding for videos, thumbnail generation.
  • Feed generation strategies: fan-out on write (push) vs fan-out on read (pull), and hybrid approaches for scalability.
  • Data modeling: user, post, follow, like, comment tables; use of NoSQL for scalability and SQL for relationships.
  • Caching: Redis/Memcached for feed, user sessions, and hot content; CDN for media.
  • Scalability and partitioning: sharding by user ID, consistent hashing, and handling hot users.
  • Trade-offs: latency vs consistency, cost vs performance, and complexity of video processing.

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 and ranking for a social platform at scale, and what consistency model would you apply to the timeline?

System DesignTechnical Trade-offs
Author's notes

I went with a fan-out-on-write approach for most users and fan-out-on-read for high-follower accounts.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and scale, then propose a hybrid feed generation approach: push (fan-out on write) for most users and pull (fan-out on read) for celebrities, with a ranking layer that combines candidate generation and ML scoring. For consistency, discuss trade-offs between strong and eventual consistency, ultimately recommending an eventual consistency model with read-your-writes guarantees for the user's own actions.

Pro tip: Emphasize that consistency requirements differ for the user's own timeline versus others' timelines, and that ranking should be decoupled from feed assembly to allow independent scaling and experimentation.

1. Clarify Requirements and Scale

Ask about expected DAU, read/write ratio, latency SLAs, and whether the feed is chronological or ranked. This sets the stage for design decisions.

2. Design Feed Generation Strategy

Propose a hybrid approach: fan-out on write for active users to precompute feeds, and fan-out on read for celebrities to avoid write amplification. Use a graph store or social graph service to determine followers.

3. Implement Ranking and Personalization

Describe a multi-stage ranking pipeline: candidate generation (e.g., from follow graph, trending), lightweight ranking (e.g., logistic regression), and heavy ranking (e.g., deep neural networks). Mention feature store and real-time signals.

4. Choose Consistency Model

Discuss consistency trade-offs: strong consistency for user's own posts (read-your-writes) and eventual consistency for others' feeds. Use versioning or timestamps to handle out-of-order updates.

5. Address Scalability and Reliability

Cover caching (e.g., Redis for hot feeds), sharding, and fallback mechanisms. Mention monitoring and degradation strategies (e.g., fallback to chronological feed if ranking service fails).

Key Points to Mention

  • Fan-out on write vs. fan-out on read and hybrid approach for celebrities
  • Multi-stage ranking pipeline with candidate generation and ML models
  • Eventual consistency with read-your-writes for user's own actions
  • Caching strategies (e.g., Redis) and CDN for media
  • Use of a feature store and real-time signals for ranking
  • Trade-offs between latency, cost, and consistency

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

Q3

Walk through your media handling and CDN strategy for a platform serving billions of images and videos globally.

System DesignTechnical Trade-offs
Author's notes

Talked about object storage, transcoding pipelines for video, and pushing assets to edge nodes.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and scale, then propose a multi-tier architecture with edge caching, regional origins, and a global backbone. Emphasize trade-offs between latency, cost, and consistency, and discuss how you'd handle failures and hot content.

Pro tip: Quantify the impact of your design choices—e.g., 'edge caching reduces origin load by 90% and cuts latency by 200ms'—to show you think in terms of real-world metrics and business value.

1. Clarify Requirements and Scale

Ask about traffic patterns, content types, geographic distribution, and SLAs. Confirm the scale (billions of images/videos) and any constraints like budget or regulatory requirements.

2. Design Multi-Tier Architecture

Propose a layered approach: edge CDN for static assets, regional caching layers, and origin storage (e.g., object store). Explain how requests flow from edge to origin and how you'd handle dynamic content.

3. Address Key Challenges

Discuss solutions for hot content (e.g., pre-warming, request coalescing), cache invalidation, and consistency. Mention techniques like TTL tuning, versioned URLs, and purge APIs.

4. Optimize for Performance and Cost

Explain how you'd use compression, adaptive bitrate streaming, and format selection (WebP, AV1). Discuss cost optimizations like tiered storage, spot instances, and traffic shaping.

5. Ensure Reliability and Monitoring

Describe failover strategies (multi-CDN, origin shielding), health checks, and monitoring for cache hit ratios, latency, and error rates. Include a plan for capacity planning and incident response.

Key Points to Mention

  • Edge caching and CDN selection (multi-CDN strategy for redundancy)
  • Origin shielding and request coalescing to reduce origin load
  • Cache invalidation strategies (versioned URLs, purge APIs, TTL tuning)
  • Media optimization (compression, transcoding, adaptive bitrate streaming)
  • Global load balancing and failover (DNS-based, anycast)
  • Monitoring and metrics (cache hit ratio, latency, error rates, cost per GB)

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

Q4

How would you design the sharding and replication strategy for the core data stores in this system?

System DesignData Modeling
Author's notes

I went with user-id-based sharding for the user and follow graph tables and talked through consistent hashing.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the system's requirements—scale, read/write ratio, consistency needs, and latency targets—then propose a sharding strategy (e.g., hash-based on a high-cardinality key) and a replication strategy (e.g., leader-follower with quorum reads/writes). Explain how these choices address the requirements and trade-offs, and mention how you'd handle rebalancing and failure scenarios.

Pro tip: Tie your choices to concrete numbers (e.g., 'At 1M QPS, we'd need ~100 shards with 10K QPS each') and proactively discuss operational concerns like hotspot mitigation and cross-shard queries, which shows you think beyond the happy path.

1. Clarify requirements and constraints

Ask about data volume, query patterns, consistency requirements, latency SLAs, and geographic distribution to ground your design in real needs.

2. Choose a sharding key and strategy

Select a high-cardinality, evenly distributed key (e.g., user ID) and decide between hash-based, range-based, or directory-based sharding, explaining trade-offs like hotspot risk vs. range query efficiency.

3. Design replication for availability and durability

Propose a replication model (e.g., leader-follower or multi-leader) with a quorum-based consistency level (e.g., R+W > N) to balance latency and consistency, and specify replication factor and placement across racks/AZs.

4. Plan for scaling and failure handling

Describe how to add/remove shards (e.g., consistent hashing, virtual nodes), rebalance data, and handle failures (e.g., leader election, read repair, anti-entropy).

5. Address operational concerns and trade-offs

Discuss monitoring, hotspot detection, cross-shard queries, and how your choices impact latency, cost, and complexity, showing awareness of real-world operations.

Key Points to Mention

  • Sharding key selection (e.g., user ID) and its impact on data distribution and query patterns
  • Hash-based vs. range-based sharding and trade-offs (e.g., range queries vs. hotspot avoidance)
  • Replication models (leader-follower, multi-leader) and consistency levels (quorum, eventual)
  • Handling hotspots and rebalancing (consistent hashing, virtual nodes, dynamic splitting)
  • Failure scenarios and recovery (leader election, read repair, anti-entropy)
  • Cross-shard operations and their performance implications (e.g., scatter-gather, denormalization)

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

Q5

What are your back-of-the-envelope estimates for QPS, storage, and bandwidth for a system at Instagram's scale?

System DesignTechnical Trade-offs
Author's notes

I actually felt okay about this part.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by stating your assumptions about Instagram's scale (e.g., 2 billion monthly active users, 500 million daily active users) and then break down the problem into read-heavy and write-heavy operations. Estimate QPS for key actions like feed loads, photo uploads, and likes, then derive storage and bandwidth requirements from those numbers, using round numbers and powers of 10 for simplicity.

Pro tip: Always clarify that these are rough estimates and focus on the methodology rather than exact numbers; interviewers care more about your thought process and ability to identify bottlenecks than precise calculations.

1. State assumptions and scope

Clearly define the scale: number of users, daily active users, and average actions per user per day. Specify what you're estimating (e.g., feed reads, photo uploads, likes, comments).

2. Estimate QPS for key operations

Calculate queries per second for read-heavy operations (e.g., feed loads) and write-heavy operations (e.g., photo uploads). Use daily active users and average actions per user, then divide by seconds in a day (86400) and account for peak traffic (e.g., 2-3x average).

3. Estimate storage requirements

Determine average size per stored item (e.g., photo size, metadata) and multiply by daily uploads to get daily storage growth. Extend to yearly storage and consider replication and backups.

4. Estimate bandwidth requirements

Calculate inbound bandwidth from uploads (average photo size * upload QPS) and outbound bandwidth from downloads (average photo size * feed QPS). Convert to bits per second (e.g., Mbps, Gbps) and consider peak traffic.

5. Sanity-check and summarize

Verify that numbers are within reason (e.g., compare to known data points) and summarize the key figures. Mention that these are rough estimates and highlight any assumptions that could significantly impact results.

Key Points to Mention

  • Assumptions about user base: 2B MAU, 500M DAU, average actions per user (e.g., 10 feed loads, 0.1 photo uploads per day).
  • Peak traffic multiplier: typically 2-3x average QPS to account for diurnal patterns.
  • Storage growth: include photo sizes (e.g., 1-2 MB per photo), metadata, and replication factor (e.g., 3x).
  • Bandwidth: inbound from uploads, outbound from feed loads; use average photo size and QPS to compute.
  • Caching and CDN impact: reduces backend load and bandwidth, but still need to estimate origin traffic.
  • Trade-offs: read-heavy vs write-heavy, consistency vs availability, and how they affect estimates.

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

Q6

How would you approach rate limiting and abuse prevention for a platform like this?

System DesignAPI & Integrations
Author's notes

Token bucket per user per endpoint was my answer.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the platform's scale, traffic patterns, and abuse vectors, then propose a layered defense combining rate limiting algorithms, distributed enforcement, and adaptive abuse detection. Emphasize trade-offs between user experience, accuracy, and system complexity, and tie your choices to Meta's scale and product goals.

Pro tip: Mention that rate limiting alone is insufficient—abuse prevention requires a feedback loop with anomaly detection and rapid iteration, and you should discuss how to avoid false positives that harm legitimate users.

1. Clarify requirements and threat model

Ask about scale (QPS, users), abuse types (scraping, spam, DDoS, credential stuffing), and business impact. Identify what 'abuse' means for this platform and what user experience constraints exist.

2. Design rate limiting strategy

Choose algorithms (token bucket, sliding window, leaky bucket) based on burst tolerance and accuracy needs. Define limits per user, IP, API key, and endpoint, and decide where to enforce (client, edge, service, or distributed store).

3. Implement distributed enforcement

Use a low-latency, scalable store like Redis or a custom in-memory grid with eventual consistency. Discuss sharding, replication, and fallback mechanisms to avoid single points of failure.

4. Add adaptive abuse detection

Layer in anomaly detection (ML models, heuristics) to catch sophisticated abuse that static limits miss. Use signals like request patterns, device fingerprints, and reputation scores to dynamically adjust limits.

5. Monitor, iterate, and handle trade-offs

Instrument metrics (blocked requests, false positives, latency), set up alerts, and create a feedback loop to tune thresholds. Discuss how to handle false positives (e.g., CAPTCHA, manual review) and communicate with users.

Key Points to Mention

  • Rate limiting algorithms: token bucket, sliding window, leaky bucket, and their trade-offs
  • Distributed rate limiting using Redis or similar with atomic operations and sharding
  • Layered defense: edge (CDN/WAF), API gateway, and service-level limits
  • Adaptive abuse prevention: ML-based anomaly detection, reputation systems, and behavioral analysis
  • Handling false positives: graceful degradation, CAPTCHA challenges, and user feedback loops
  • Monitoring and observability: metrics, logging, and alerting for abuse patterns and system health

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

Q7

How would you design the notifications system, and what trade-offs exist between push and pull models?

System DesignTechnical Trade-offs
Author's notes

Short answer: push for mobile via APNs/FCM, pull as a fallback for web.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements (scale, latency, delivery guarantees) and then present a high-level design covering producers, notification service, queues, and delivery channels. Compare push vs. pull models across dimensions like latency, scalability, and complexity, and recommend a hybrid approach with justification.

Pro tip: At Meta's scale, a hybrid model is often necessary: use push for real-time notifications and pull for batch or less time-sensitive ones. Also, consider the impact of mobile push notifications on battery life and the need for rate limiting to prevent notification fatigue.

1. Clarify Requirements

Ask about scale (DAU, notifications per second), latency requirements, delivery guarantees (at-least-once, exactly-once), and supported channels (push, email, SMS, in-app).

2. High-Level Design

Outline components: notification producers (services triggering notifications), a notification service that processes and routes, message queues for decoupling, and delivery workers for each channel.

3. Compare Push vs. Pull

Discuss trade-offs: push offers low latency but can overwhelm clients and requires connection management; pull is simpler but introduces latency and polling overhead. Consider hybrid approaches.

4. Address Scalability and Reliability

Explain how to scale: sharding, partitioning, using Kafka for buffering, and ensuring fault tolerance with retries and dead-letter queues.

5. Summarize and Recommend

Conclude with a recommended architecture (e.g., hybrid push-pull) and justify based on requirements, mentioning potential optimizations like batching and prioritization.

Key Points to Mention

  • Push vs. pull trade-offs: latency, scalability, complexity, battery impact on mobile devices
  • Hybrid model: push for real-time, pull for batch or low-priority notifications
  • Use of message queues (e.g., Kafka) for decoupling and handling spikes
  • Delivery guarantees and idempotency to avoid duplicate notifications
  • Rate limiting and user preferences to prevent notification fatigue
  • Monitoring and analytics for delivery success and user engagement

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

Q8

What observability and disaster recovery strategies would you put in place for this platform?

System DesignTechnical Trade-offs
Author's notes

Mentioned distributed tracing, structured logging, and metrics dashboards.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the platform's scale, critical user journeys, and SLAs, then propose a layered observability stack (metrics, logs, traces) with SLO-driven alerting, and finally outline a DR strategy with defined RTO/RPO, multi-region failover, and regular game-day testing. Emphasize trade-offs between cost, complexity, and resilience, and tie everything back to user impact and business continuity.

Pro tip: Meta values a data-driven, user-first mindset: quantify the impact of downtime (e.g., revenue per minute) and propose SLOs that directly reflect user experience, not just infrastructure health. Also, mention how you'd use observability data to continuously improve DR readiness through chaos engineering and postmortems.

1. Clarify Requirements and Constraints

Ask about the platform's scale, critical user journeys, SLAs, compliance needs, and budget. This ensures your strategy is tailored and demonstrates you think before proposing solutions.

2. Design Observability Stack

Propose collecting metrics, logs, and traces using tools like Prometheus, ELK, and Jaeger. Define SLOs and error budgets, and set up alerting that focuses on user-facing symptoms rather than just resource utilization.

3. Define Disaster Recovery Objectives

Establish RTO and RPO based on business impact. Choose a DR pattern (e.g., active-active, active-passive, pilot light) and justify it with trade-offs between cost, complexity, and recovery speed.

4. Implement and Automate DR

Describe how you'd implement failover, data replication, and backup strategies. Emphasize automation for failover and recovery to reduce human error and downtime.

5. Test and Iterate

Explain the importance of regular DR drills, chaos engineering, and post-incident reviews. Use observability data to identify gaps and continuously improve the strategy.

Key Points to Mention

  • SLOs, SLIs, and error budgets to align observability with user experience
  • Distributed tracing and structured logging for debugging microservices
  • Multi-region deployment and data replication strategies (e.g., synchronous vs asynchronous)
  • RTO/RPO definitions and how they drive DR architecture choices
  • Automated failover and recovery to minimize human error
  • Chaos engineering and game days to validate DR readiness

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