← Netflix Interview Insights

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

SeniorPrefer not to say
May 2026

Summary

Netflix ads platform system design, one big open-ended question that expanded in every direction I tried to close it off. Walked out unsure if I'd gone too deep on the data model and not deep enough on the operational stuff.

Questions Asked (1)

Q1

Design the full data model for an ads platform, covering core entities like advertisers, campaigns, ad groups, creatives, targeting, budgets, and bidding, plus the fact and dimension tables needed for analytics, and how the model supports billing, attribution, reporting, pacing, and frequency capping.

Data ModelingSystem DesignTechnical Trade-offs
Author's notes

This question just kept growing.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the scope and scale (e.g., Netflix's ads tier), then walk through the core operational entities and their relationships, followed by the analytical star schema. Emphasize how the model supports key business processes like billing, attribution, pacing, and frequency capping, and discuss trade-offs between normalization and denormalization.

Pro tip: Demonstrate awareness of Netflix's unique context: ads are a secondary revenue stream and must not degrade the viewing experience, so frequency capping and pacing are critical. Also, mention that the data model should support both real-time and batch processing for different use cases.

1. Clarify Requirements and Scope

Ask about scale, latency requirements, and specific Netflix constraints (e.g., ad load, user experience). Confirm whether the focus is on OLTP, OLAP, or both.

2. Design Core Operational Entities

Define entities like Advertiser, Campaign, AdGroup, Creative, Targeting, Budget, and Bid, with their attributes and relationships. Use normalization to avoid redundancy.

3. Design Analytical Schema

Create fact tables (e.g., Impressions, Clicks, Conversions) and dimension tables (e.g., Time, User, Creative, Campaign) for reporting and analytics. Consider slowly changing dimensions.

4. Support Business Processes

Explain how the model enables billing (e.g., based on impressions/clicks), attribution (e.g., last-click, multi-touch), pacing (budget and bid adjustments), and frequency capping (user-level ad exposure tracking).

5. Discuss Trade-offs and Scalability

Address trade-offs between normalization and performance, and how to scale for Netflix's global user base. Mention partitioning, indexing, and potential use of NoSQL for certain workloads.

Key Points to Mention

  • Entity relationships: Advertiser -> Campaign -> AdGroup -> Creative, with targeting and bidding at the AdGroup level.
  • Fact tables: Impressions, Clicks, Conversions, and Billing events, with appropriate grain (e.g., per impression).
  • Dimension tables: Time, User, Creative, Campaign, Advertiser, and Targeting attributes.
  • Frequency capping: Use a user-level counter or bitmap to track ad exposures within a time window.
  • Pacing: Implement via budget consumption tracking and real-time bid adjustments, possibly using a pacing algorithm.
  • Attribution: Support multiple models (last-click, linear, time-decay) by storing touchpoint data and using attribution windows.

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