← Pinterest Interview Insights

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

SeniorPrefer not to say
May 2026

Summary

Pinterest system design round focused entirely on building an ads event reporting pipeline, end to end. Pretty deep cut for a single question, they clearly wanted to see how far you could go before running out of ideas.

Questions Asked (1)

Q1

Design an ads event reporting system that ingests user behavior events like impressions, clicks, and conversions, aggregates them, and breaks down those aggregates by user segments such as cohort, geography, and demographic. Walk through the full pipeline including ingestion, real-time vs batch processing, schema design, dimensional aggregation strategies, late-arriving events, deduplication, query patterns from a reporting dashboard, and storage choices.

System DesignData ModelingTechnical Trade-offs
Author's notes

This one runs long.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and scale, then design a hybrid pipeline with a real-time ingestion layer for low-latency metrics and a batch layer for accurate, reprocessable aggregations. Focus on the data model and aggregation strategy to support flexible breakdowns by user segments, and address challenges like late data and deduplication with concrete mechanisms.

Pro tip: Emphasize how you would handle late-arriving events by using event-time processing with watermarks and a reconciliation process between real-time and batch layers to ensure eventual consistency. Also, mention the importance of idempotent writes and deduplication keys to avoid double-counting in a high-volume ads system.

1. Clarify Requirements and Scale

Ask about expected event volume, latency requirements for reporting, and the specific user segments and metrics needed. This will drive decisions on real-time vs batch processing and storage choices.

2. Design Ingestion and Processing Pipeline

Propose a scalable ingestion layer (e.g., Kafka) to collect events, then a stream processing layer (e.g., Flink) for real-time aggregations and a batch layer (e.g., Spark) for accurate, reprocessable aggregations. Discuss how to handle late data with watermarks and how to reconcile between layers.

3. Define Schema and Dimensional Model

Design a fact table for events with dimensions for user segments (cohort, geography, demographic) and time. Consider using a star schema or wide denormalized tables for query performance, and discuss partitioning and clustering strategies.

4. Address Deduplication and Late-Arriving Events

Explain how to deduplicate events using unique event IDs and idempotent writes. For late events, describe how to use event-time processing, watermarks, and possibly a lambda architecture to reprocess and correct aggregates.

5. Choose Storage and Query Patterns

Select storage solutions for different needs: real-time dashboards might use a fast OLAP database (e.g., Druid, ClickHouse), while batch reporting could use a data warehouse (e.g., BigQuery, Redshift). Discuss query patterns like filtering by segments, time ranges, and aggregations, and how to optimize with pre-aggregation and indexing.

Key Points to Mention

  • Lambda vs Kappa architecture for balancing real-time and batch processing
  • Event-time processing with watermarks to handle late-arriving data
  • Deduplication using unique event IDs and idempotent writes
  • Dimensional modeling (star schema) and partitioning for efficient segment breakdowns
  • Storage choices: OLAP databases for real-time, data warehouses for batch, and possibly a serving layer for dashboards
  • Reconciliation between real-time and batch layers to ensure eventual consistency

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