← Figma Interview Insights

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

Senior
Jun 2026

Summary

Figma system design round, one big open-ended question about building a trending articles feed at scale. The scope was massive and I felt like I was chasing my own tail for most of it.

Questions Asked (1)

Q1

Design a system that surfaces trending articles in near real time for a large-scale product. Walk through your requirements, architecture, and key trade-offs.

System DesignTechnical Trade-offsData Modeling
Author's notes

This question has a lot of surface area and I underestimated how much of it I'd need to cover.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and scale, then propose a high-level architecture that ingests events, computes trends in near real time, and serves results with low latency. Focus on the trade-offs between accuracy, latency, and cost, and justify your choices based on Figma's collaborative design platform context.

Pro tip: Emphasize that 'trending' is subjective and requires a clear definition (e.g., velocity of views/likes/comments in a sliding window). Also, discuss how to handle cold start and ensure fairness across content types, which shows product thinking beyond pure engineering.

1. Clarify Requirements and Scale

Ask questions to understand what 'trending' means, the expected scale (DAU, articles, events per second), latency requirements (near real time = seconds?), and consistency needs. Define metrics like views, likes, comments, and time windows.

2. High-Level Architecture

Propose a pipeline: ingestion (Kafka/Kinesis), stream processing (Flink/Spark Streaming) to compute trends, storage (Redis/DynamoDB) for serving, and an API layer. Include a batch layer for backfill or correction if needed (Lambda architecture).

3. Data Modeling and Algorithm

Choose a trending algorithm (e.g., sliding window counts, decayed scores, or machine learning). Model data as events with article ID, user ID, timestamp, and type. Discuss how to handle duplicates, bots, and spam.

4. Trade-offs and Optimizations

Discuss trade-offs: latency vs. accuracy (approximate algorithms like count-min sketch), cost vs. performance (pre-aggregation vs. on-the-fly), and consistency (eventual vs. strong). Mention scaling strategies (sharding, partitioning).

5. Failure Handling and Monitoring

Explain how to handle failures (backpressure, dead-letter queues, idempotency) and monitor system health (latency, throughput, accuracy). Include fallback to batch results if stream fails.

Key Points to Mention

  • Definition of 'trending' and the metrics used (e.g., views, likes, comments per time window).
  • Stream processing framework choice (e.g., Flink, Spark Streaming) and why it fits near real-time needs.
  • Storage solutions for low-latency serving (e.g., Redis, DynamoDB) and how to keep them updated.
  • Trade-offs between exact and approximate counting (e.g., using count-min sketch for scalability).
  • Handling of spam, bots, and duplicate events to ensure trend quality.
  • Scalability considerations: partitioning, sharding, and horizontal scaling of components.

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