← Meta Interview Insights

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

SeniorPrefer not to say
Jun 2026

Summary

System design round at Meta for a software engineer role. The problem was building a price-tracking backend, which sounds straightforward until you actually start pulling on the threads around scheduling, deduplication, and storing years of price history cheaply.

Questions Asked (6)

Q1

Design a backend system for an e-commerce price-tracking service that supports millions of users, stores historical price data, and sends alerts when prices drop below a threshold or by a configured percentage.

System DesignData ModelingTechnical Trade-offs
Author's notes

I started with the obvious stuff: API layer, a product metadata store, a scheduler that kicks off fetch workers, and a notification service.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and scale, then design a high-level architecture that separates ingestion, storage, and alerting. Focus on data modeling for time-series price data, scalability for millions of users, and trade-offs between consistency and latency in alert delivery.

Pro tip: Emphasize the importance of idempotent and exactly-once processing in the alert pipeline to avoid duplicate notifications, and discuss how to handle late-arriving price updates gracefully.

1. Clarify Requirements and Scale

Ask questions to understand the number of products, update frequency, user base, and alert latency expectations. Define functional and non-functional requirements.

2. High-Level Architecture

Outline components: data ingestion (crawlers/APIs), message queue, storage (time-series DB), alert service, and notification system. Sketch data flow.

3. Data Modeling and Storage

Design schema for products, price history, user watchlists, and alerts. Choose appropriate databases (e.g., Cassandra for time-series, Redis for caching).

4. Scalability and Performance

Discuss partitioning, sharding, replication, and caching strategies to handle millions of users and high write throughput.

5. Alerting and Trade-offs

Design alert evaluation logic (thresholds, percentage drops), ensure scalability and fault tolerance. Discuss trade-offs like push vs pull, consistency vs latency.

Key Points to Mention

  • Time-series data storage and efficient querying for historical price data
  • Partitioning and sharding strategies for user watchlists and price data
  • Message queues (e.g., Kafka) for decoupling ingestion and alert processing
  • Idempotency and exactly-once processing to prevent duplicate alerts
  • Caching frequently accessed data (e.g., current prices) with Redis
  • Trade-offs between consistency, latency, and cost in alert delivery

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

Q2

How would you design the dynamic crawl scheduler to fetch prices more frequently for popular products than for long-tail ones?

System DesignTechnical Trade-offs
Author's notes

This is where I got pushed hardest.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the requirements and scale, then propose a tiered scheduling system where crawl frequency is dynamically adjusted based on product popularity signals. Discuss how to compute popularity, assign tiers, and handle trade-offs like freshness vs. resource usage, and finally outline the architecture and data flow.

Pro tip: Emphasize the importance of a feedback loop: use crawl results to update popularity metrics, and consider implementing adaptive rate limiting to avoid overloading target sites. Also, mention that you would start with a simple heuristic and iterate based on metrics.

1. Clarify Requirements and Scale

Ask questions to understand the scale (number of products, crawl rate), freshness requirements, and constraints (e.g., politeness, cost). This shows you think before designing.

2. Define Popularity Metrics

Identify signals for popularity such as page views, sales rank, search frequency, or historical price change frequency. Discuss how to compute and update these metrics in real-time or batch.

3. Design Tiered Scheduling

Propose a multi-tier system (e.g., high, medium, low) with different crawl intervals. Explain how products move between tiers based on popularity changes.

4. Architecture and Data Flow

Outline components: a scheduler service, a priority queue, a worker pool, and a datastore for popularity metrics. Describe how the scheduler assigns tasks and how workers fetch and update data.

5. Handle Trade-offs and Edge Cases

Discuss trade-offs: resource allocation, freshness vs. cost, and potential starvation of long-tail products. Mention strategies like exponential backoff, jitter, and dynamic adjustment based on load.

Key Points to Mention

  • Popularity signals: page views, sales rank, search volume, historical price volatility
  • Tiered crawl intervals (e.g., every 5 min for hot items, daily for long-tail)
  • Dynamic adjustment: feedback loop from crawl results to update popularity
  • Priority queue with weighted fair queuing to prevent starvation
  • Rate limiting and politeness policies to avoid overloading target sites
  • Monitoring and metrics: crawl success rate, freshness, resource utilization

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

Q3

How would you prevent duplicate notifications from being sent after retries or partial failures?

System DesignAPI & Integrations
Author's notes

Blanked for a second.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the notification system's architecture and failure modes, then propose idempotency as the core principle. Describe concrete mechanisms like idempotency keys, deduplication stores, and transactional outbox patterns, and explain how they handle retries and partial failures.

Pro tip: Emphasize that idempotency must be enforced at the consumer side, not just the producer, and discuss how to handle the 'at-least-once' delivery guarantee by making operations idempotent. Also, mention the trade-offs between different deduplication strategies (e.g., time-based vs. permanent) and how to monitor for duplicates.

1. Clarify requirements and failure scenarios

Ask about the notification system's scale, delivery guarantees (at-least-once, at-most-once), and common failure points (e.g., network timeouts, partial writes). This shows you understand the problem context before jumping to solutions.

2. Introduce idempotency as the core principle

Explain that to prevent duplicates, each notification request must be idempotent, meaning repeated attempts have the same effect as a single attempt. This is achieved by assigning a unique idempotency key to each logical notification.

3. Design deduplication mechanisms

Describe how to use a deduplication store (e.g., Redis, database) to track processed idempotency keys. On retry, the system checks if the key exists; if so, it skips sending. Discuss TTL and storage considerations.

4. Handle partial failures with transactional patterns

Propose using a transactional outbox or two-phase commit to ensure that notification sending and state updates are atomic. This prevents scenarios where a notification is sent but the system crashes before recording it.

5. Address edge cases and monitoring

Discuss how to handle duplicate keys from different sources, clock skew, and cleanup of old keys. Also, mention monitoring and alerting for duplicate detection to catch issues in production.

Key Points to Mention

  • Idempotency keys: unique identifiers for each notification to ensure repeated requests are deduplicated.
  • Deduplication store: a fast, persistent store (e.g., Redis, DynamoDB) to track processed keys with appropriate TTL.
  • Transactional outbox pattern: ensures atomicity between notification sending and state updates to avoid partial failures.
  • At-least-once delivery: acknowledge that retries are inevitable and design for idempotency rather than trying to achieve exactly-once delivery.
  • Consumer-side idempotency: enforce deduplication at the consumer (e.g., notification service) to handle duplicates from upstream retries.
  • Monitoring and alerting: track duplicate rates and set up alerts to detect and resolve issues quickly.

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

Q4

How would you store years of price history cost-effectively at scale?

System DesignTechnical Trade-offsData Modeling
Author's notes

Talked about tiered storage: keep recent high-resolution data in a time-series DB, then downsample older data into hourly or daily aggregates and ship to cold object storage.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements: data volume, query patterns, retention, and cost constraints. Then propose a tiered storage strategy using columnar formats and compression, with hot/warm/cold tiers and appropriate indexing. Discuss trade-offs between storage cost, query performance, and complexity.

Pro tip: Emphasize that price history is append-only and time-series, so you can leverage time-based partitioning and downsampling to reduce cost. Also mention that you would evaluate build vs. buy (e.g., using a managed time-series database) based on team expertise and scale.

1. Clarify Requirements

Ask about data volume (e.g., number of instruments, years of history, granularity), query patterns (e.g., point lookups, range scans, aggregations), and cost constraints. Understand SLAs for latency and durability.

2. Choose Storage Format and Compression

Recommend a columnar format like Parquet or ORC with compression (e.g., Snappy, Zstd) to reduce storage footprint and improve query performance. For time-series, consider specialized formats like Gorilla or Delta-of-Delta encoding.

3. Design Tiered Storage Architecture

Propose a hot/warm/cold tiering strategy: recent data in fast storage (e.g., SSD, in-memory), older data in cheaper object storage (e.g., S3, GCS) with lifecycle policies. Use partitioning by time (e.g., daily/monthly) to enable efficient pruning.

4. Optimize for Query Patterns

Add appropriate indexes (e.g., time-series indexes, bloom filters) and consider pre-aggregation or materialized views for common queries. For cold data, use serverless query engines (e.g., Athena, BigQuery) to avoid always-on costs.

5. Discuss Trade-offs and Alternatives

Compare options like using a managed time-series database (e.g., TimescaleDB, InfluxDB) vs. building on object storage. Highlight trade-offs between cost, performance, operational complexity, and scalability.

Key Points to Mention

  • Columnar storage formats (Parquet, ORC) with compression for cost efficiency
  • Time-based partitioning and downsampling/retention policies to reduce data volume
  • Tiered storage (hot/warm/cold) using object storage for cold data
  • Indexing strategies (e.g., time-series indexes, bloom filters) for fast queries
  • Pre-aggregation or materialized views for common analytical queries
  • Trade-offs between managed services vs. self-managed solutions

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

Q5

How would the design change if you needed to support multiple retailers across different regions?

System DesignAdaptability & Ambiguity
Author's notes

Honestly the question I was least prepared for.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the requirements: which regions, what data isolation and compliance needs, and expected scale. Then propose a multi-tenant architecture with regional deployments, data partitioning, and configurable retailer-specific logic, while discussing trade-offs between consistency, latency, and cost.

Pro tip: Emphasize that you would design for regional data residency and compliance from the start, as this is a common pitfall in global systems. Also, mention that you would use feature flags and configuration over code to handle retailer-specific variations, enabling rapid adaptation without redeployments.

1. Clarify Requirements

Ask about the number of retailers, regions, data residency laws, expected traffic patterns, and any retailer-specific customizations. This ensures the design addresses real constraints.

2. Define Multi-Tenancy Model

Decide on tenant isolation level (shared DB with tenant ID, separate schemas, or separate databases) based on compliance and scale. Consider a hybrid approach for cost efficiency.

3. Design for Regional Deployment

Propose deploying the service in multiple regions with data replication and routing based on user location. Discuss active-active vs. active-passive setups and latency implications.

4. Handle Retailer-Specific Logic

Use configuration-driven approaches (e.g., feature flags, rules engines) to manage variations in business rules, pricing, and workflows without code changes.

5. Address Cross-Cutting Concerns

Cover monitoring, security, data consistency, and failure recovery across regions. Discuss trade-offs between consistency, availability, and partition tolerance (CAP theorem).

Key Points to Mention

  • Data residency and compliance (GDPR, CCPA, etc.) requiring regional data storage and processing.
  • Multi-tenancy strategies: shared database with tenant ID, separate schemas, or separate databases per retailer/region.
  • Regional deployment patterns: active-active vs. active-passive, data replication, and latency-based routing.
  • Configuration management and feature flags to handle retailer-specific customizations without code changes.
  • Scalability and performance considerations: sharding, caching, and CDN usage for global low-latency access.
  • Trade-offs: consistency vs. availability, cost vs. isolation, and complexity vs. time-to-market.

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

Q6

Are you assuming a retailer API, web scraping, or both? What are the tradeoffs?

Technical Trade-offsAPI & Integrations
Author's notes

I said I'd assume a mix: official API where available, scraping as a fallback.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Clarify that the choice depends on the specific requirements, constraints, and scale of the project, and that a hybrid approach is often optimal. Then systematically compare the trade-offs of each method across dimensions like reliability, cost, legal risk, and maintenance, and conclude with a recommendation based on the context.

Pro tip: Emphasize that APIs are generally preferred for their reliability and structured data, but web scraping can be a fallback for retailers without APIs; however, always consider the legal and ethical implications and the potential for breaking changes.

1. Clarify assumptions and requirements

Ask clarifying questions about the project's goals, scale, data needs, and constraints (e.g., budget, timeline, legal). This shows you don't jump to solutions without understanding the problem.

2. Compare API vs. scraping trade-offs

Discuss key dimensions: reliability (API is stable, scraping breaks with UI changes), data quality (API provides structured data, scraping requires parsing), cost (API may have fees, scraping requires infrastructure), legal/ethical (API is sanctioned, scraping may violate ToS), and maintenance (API is easier, scraping needs constant updates).

3. Consider hybrid approach

Explain that using APIs where available and scraping as a fallback can balance coverage and reliability, but adds complexity in maintaining two systems.

4. Recommend based on context

Tie back to the original requirements: for a large-scale, long-term project, prefer APIs; for a quick prototype or when APIs are unavailable, scraping might be acceptable with caution.

Key Points to Mention

  • API reliability and structured data vs. scraping fragility and parsing overhead
  • Legal and ethical considerations: Terms of Service, robots.txt, GDPR, and potential lawsuits
  • Cost implications: API fees vs. infrastructure and development costs for scraping
  • Maintenance burden: API versioning vs. scraping breakage due to website changes
  • Scalability: APIs often have rate limits; scraping can be distributed but may be blocked
  • Hybrid approach: using APIs when possible and scraping as a fallback, with caching to reduce load

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