← Netflix Interview Insights

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

SeniorPrefer not to say
Apr 2026

Summary

Netflix system design round focused entirely on ads frequency capping, which sounds narrow until you realize how many rabbit holes it opens up. Walked out feeling like I'd touched maybe 60% of what they wanted to cover.

Questions Asked (6)

Q1

Design an ads frequency capping service that limits how many times a user sees a specific creative or campaign within configurable time windows, such as 3 times per day per campaign or 10 times per week across an advertiser's entire catalog.

System DesignTechnical Trade-offsData Modeling
Author's notes

I started with the counter store and storage design, which felt natural, but the interviewer kept pulling me toward identity resolution before I was ready.

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 the counting mechanism from the policy engine. Focus on data modeling for fast increments and reads, and discuss trade-offs between accuracy, latency, and cost.

Pro tip: Emphasize that frequency capping is a real-time, low-latency decision problem; propose an in-memory store like Redis with atomic increments and TTLs, but also discuss how to handle failures and eventual consistency for billing or analytics.

1. Clarify Requirements and Scale

Ask about the number of users, campaigns, creatives, and the expected QPS for ad requests. Clarify the granularity of caps (per user, per campaign, per creative) and the time windows (daily, weekly).

2. Design High-Level Architecture

Outline components: an ad decision service that checks frequency caps, a counting service that tracks impressions, and a policy service that manages cap configurations. Consider using a fast in-memory store for counters and a durable store for configurations.

3. Data Modeling and Storage

Choose a data model for counters, e.g., key = user_id + campaign_id + time_window, value = count. Use Redis with atomic INCR and EXPIRE for TTL. For cross-advertiser caps, consider aggregating at the advertiser level.

4. Handling Scale and Consistency

Discuss sharding by user_id, replication for availability, and trade-offs between strong consistency (e.g., using Redis transactions) and eventual consistency (e.g., using a distributed counter with CRDTs). Address hot keys and failure modes.

5. Trade-offs and Optimizations

Compare synchronous vs asynchronous counting, discuss caching strategies, and consider approximate counting (e.g., Bloom filters) for high-scale scenarios. Mention monitoring and alerting for cap violations.

Key Points to Mention

  • Use of Redis or similar in-memory store for low-latency atomic increments and TTL-based expiration.
  • Key design: composite keys like user_id:campaign_id:window to enable efficient lookups and increments.
  • Handling multiple time windows (e.g., daily and weekly) by maintaining separate counters or using sliding windows.
  • Trade-offs between accuracy and performance: exact counting vs approximate counting (e.g., using probabilistic data structures).
  • Failure handling: what happens if the counter store is unavailable? Fallback to allow or deny?
  • Scalability: sharding, replication, and avoiding hot keys; consider using a distributed cache like Redis Cluster.

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

Q2

How does a frequency capping service differ from a generic rate limiter, and what extra components does it require specifically for advertiser configuration and onboarding?

System DesignTechnical Trade-offsAPI & Integrations
Author's notes

Honestly a question I should have anticipated but didn't prep for explicitly.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by contrasting the core purpose: a generic rate limiter enforces a simple request-per-time-window limit, while a frequency capping service enforces per-user, per-advertiser, per-campaign constraints with complex business rules. Then, detail the additional components needed for advertiser configuration and onboarding, such as a flexible policy engine, a self-service portal, and a metadata store for advertiser-specific settings.

Pro tip: Emphasize that frequency capping is a business-critical feature that directly impacts advertiser satisfaction and revenue, so the design must prioritize correctness, auditability, and seamless onboarding to avoid manual errors.

1. Define the core difference

Explain that a generic rate limiter is a technical safeguard against abuse, while a frequency capping service is a business logic layer that enforces contractual ad delivery limits per user, per advertiser, and per campaign.

2. Identify key requirements

List the unique requirements: per-advertiser and per-campaign caps, time windows (e.g., daily, weekly), user-level tracking, and real-time enforcement with low latency.

3. Describe additional components

Detail the extra components: a policy engine to evaluate complex rules, a configuration store for advertiser-specific settings, a self-service portal for onboarding, and an audit log for compliance.

4. Explain data flow and integration

Walk through how these components interact: advertisers configure caps via the portal, settings are stored and versioned, and the policy engine enforces caps in real-time using a fast counter store (e.g., Redis).

5. Highlight trade-offs and scalability

Discuss trade-offs like consistency vs. latency, and how to scale for millions of users and advertisers, possibly using sharding or approximate counting.

Key Points to Mention

  • Generic rate limiter: simple, often IP-based, no business context; frequency capping: user-centric, advertiser-specific, and campaign-aware.
  • Need for a flexible policy engine that supports complex rules (e.g., 'max 3 impressions per user per day per campaign').
  • Advertiser configuration store: must handle versioning, inheritance (e.g., default caps), and real-time updates.
  • Self-service onboarding portal: allows advertisers to set caps, view usage, and manage campaigns without engineering intervention.
  • Real-time enforcement with low latency: requires a fast, scalable counter store and possibly pre-aggregation.
  • Auditability and compliance: logging all cap changes and enforcement decisions for billing and dispute resolution.

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

Q3

How would you handle real-time frequency cap decisioning at very high QPS while keeping latency low?

System DesignTechnical Trade-offs
Author's notes

This is where I felt most comfortable.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the scale and latency requirements, then propose a distributed, in-memory counting system with local caching and asynchronous updates to a central store. Emphasize trade-offs between accuracy and latency, and discuss how to handle hot keys and consistency.

Pro tip: Mention that you would use a probabilistic data structure like a count-min sketch for approximate counting to reduce memory and latency, and combine it with a local cache for exact counts of frequent users. This shows you can balance precision with performance at scale.

1. Clarify Requirements

Ask about QPS, latency SLA, accuracy requirements, and whether the cap is global or per-user. This ensures you design for the right constraints.

2. High-Level Architecture

Propose a distributed system with local in-memory counters at each node, backed by a centralized store like Redis or a custom service. Use consistent hashing to partition users across nodes.

3. Data Structures and Algorithms

Suggest using count-min sketch or HyperLogLog for approximate counting to save memory, and exact counters for users near the cap. Discuss time-window management (e.g., sliding window with buckets).

4. Consistency and Synchronization

Explain how to handle updates: asynchronous replication to central store, with eventual consistency. For strict caps, use a two-phase approach or lease-based tokens to avoid overshooting.

5. Performance Optimizations

Mention techniques like batching, pipelining, local caching, and avoiding synchronous network calls. Discuss monitoring and fallback strategies for when the central store is unavailable.

Key Points to Mention

  • Use of in-memory data stores (e.g., Redis) with local caching for low latency
  • Probabilistic data structures (count-min sketch, HyperLogLog) for memory efficiency
  • Consistent hashing for partitioning user data across nodes
  • Asynchronous updates and eventual consistency trade-offs
  • Sliding window or token bucket algorithms for time-based caps
  • Handling hot keys and ensuring high availability with fallbacks

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 configuration API for advertisers to set and update frequency caps, including validation and propagation across the system?

API & IntegrationsSystem DesignTechnical Trade-offs
Author's notes

Talked about a config service with versioned schemas, validation at write time, and async propagation to edge nodes.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements: who sets caps (advertisers, internal teams), at what granularity (campaign, creative, user), and what consistency guarantees are needed. Then propose a RESTful API with versioning, strict validation, and an event-driven propagation pipeline that balances consistency and availability. Discuss trade-offs like synchronous vs asynchronous updates, caching, and idempotency.

Pro tip: Emphasize idempotency and conflict resolution: advertisers may retry updates, so design PUT/PATCH semantics with versioning (ETags) to prevent lost updates. Also, consider a staged rollout with canary validation to catch propagation issues before global impact.

1. Clarify Requirements and Constraints

Ask about scale (number of advertisers, update frequency), consistency needs (strong vs eventual), and failure modes (what happens if propagation fails). Identify stakeholders and downstream systems.

2. Design the API Contract

Define resource-oriented endpoints (e.g., /advertisers/{id}/frequency-caps), HTTP methods, request/response schemas, and versioning. Include validation rules (e.g., cap must be positive integer, time window valid).

3. Plan Validation and Authorization

Implement layered validation: syntactic (schema), semantic (business rules), and authorization (who can set caps). Use a policy engine or RBAC to enforce permissions.

4. Design Propagation Mechanism

Choose between synchronous (write-through to all services) and asynchronous (event-driven with a message queue). Discuss trade-offs: latency vs consistency, and how to handle failures (retries, dead-letter queues).

5. Address Consistency and Monitoring

Define consistency model (e.g., eventual with read-your-writes). Implement monitoring, alerting, and audit logs. Plan for rollback and canary deployments to mitigate risks.

Key Points to Mention

  • Idempotency and versioning (ETags) to handle concurrent updates safely.
  • Event-driven architecture with Kafka or similar for scalable propagation.
  • Validation layers: schema validation, business rules, and authorization.
  • Caching strategies (e.g., Redis) for low-latency reads at the edge.
  • Trade-offs between strong and eventual consistency, and how to communicate them.
  • Monitoring, audit trails, and rollback mechanisms for operational safety.

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

Q5

What reporting data would you need to expose for frequency capping, and how do privacy and compliance constraints affect your design?

Product Analytics & MetricsSystem Design
Author's notes

Shorter part of the conversation.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the purpose of frequency capping (e.g., to limit ad or content exposure per user) and the metrics needed to monitor its effectiveness. Then discuss how privacy regulations (like GDPR, CCPA) and Netflix's internal policies shape data collection, storage, and access, emphasizing anonymization and aggregation. Finally, propose a design that balances reporting needs with compliance, such as using aggregated data and privacy-preserving techniques.

Pro tip: Demonstrate awareness that frequency capping data can be a privacy risk if tied to individuals; propose using differential privacy or k-anonymity to aggregate data while still providing actionable insights. Also, mention that Netflix often uses pseudonymized IDs and short retention windows to comply with global regulations.

1. Clarify Requirements and Scope

Ask clarifying questions to understand what frequency capping is for (e.g., ads, content recommendations) and what decisions the reporting data will inform. This ensures you focus on relevant metrics.

2. Identify Key Reporting Metrics

List essential metrics such as cap hit rate, distribution of impressions per user, time between exposures, and effectiveness (e.g., engagement lift). Consider both real-time and batch reporting needs.

3. Map Privacy and Compliance Constraints

Identify applicable regulations (GDPR, CCPA, COPPA) and Netflix's privacy policies. Determine what data can be collected, how it can be stored, and who can access it, focusing on user consent and data minimization.

4. Design Privacy-Preserving Reporting

Propose techniques like aggregation, anonymization, pseudonymization, and differential privacy to expose data without compromising individual privacy. Ensure data retention limits and access controls are in place.

5. Validate and Iterate

Suggest A/B testing or simulation to validate that the reporting data meets business needs without violating privacy. Plan for regular audits and updates as regulations evolve.

Key Points to Mention

  • Metrics: cap hit rate, frequency distribution, time between exposures, and impact on user engagement.
  • Privacy regulations: GDPR, CCPA, and Netflix's own privacy policies; need for user consent and data minimization.
  • Techniques: aggregation, anonymization, pseudonymization, differential privacy, and k-anonymity.
  • Data retention: short retention windows and secure deletion practices.
  • Access control: role-based access and audit logs for reporting data.
  • Trade-offs: balancing granularity of reporting with privacy constraints, and using aggregated data for dashboards.

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

Q6

How do you handle failure scenarios in the frequency capping service, for example if the counter store becomes unavailable?

System DesignTechnical Trade-offsAdaptability & Ambiguity
Author's notes

Said you can fail open (serve the ad anyway and risk overcapping) or fail closed (block the ad and risk underspend).

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the requirements and constraints of the frequency capping service, then discuss failure modes of the counter store and propose a layered mitigation strategy. Emphasize trade-offs between consistency, availability, and user experience, and how you would monitor and recover from failures.

Pro tip: Netflix values graceful degradation and resilience; mention how you would design the system to fail open or closed based on business impact, and how you'd use chaos engineering to validate failure handling.

1. Clarify Requirements and Constraints

Ask about the expected scale, latency requirements, and business impact of frequency capping (e.g., ad delivery, content recommendations). Understand what happens if capping fails: is it better to over-serve or under-serve?

2. Identify Failure Modes

Enumerate potential failures: counter store unavailability, network partitions, latency spikes, data inconsistency. Consider both transient and prolonged outages.

3. Design Mitigation Strategies

Propose solutions like local caching with TTL, fallback to approximate counts, circuit breakers, and asynchronous writes. Discuss trade-offs between consistency and availability (e.g., CAP theorem).

4. Define Degradation Policy

Decide whether to fail open (allow requests) or fail closed (block requests) based on business rules. Implement dynamic configuration to adjust behavior without redeployment.

5. Monitor, Alert, and Recover

Set up monitoring for counter store health, error rates, and fallback usage. Use alerts and automated recovery (e.g., retries with backoff, failover to secondary store). Conduct post-mortems and chaos tests.

Key Points to Mention

  • CAP theorem and trade-offs between consistency and availability
  • Circuit breaker pattern to prevent cascading failures
  • Local caching with TTL as a fallback for read-heavy operations
  • Asynchronous or batch writes to reduce dependency on real-time counter updates
  • Graceful degradation: fail open vs. fail closed based on business impact
  • Chaos engineering and monitoring to validate resilience

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