Pinterest Software Engineer Interview Experience — Onsite With Two System Design Rounds and Escalating Follow-ups

Pinterest·Software Engineer·Sep 2026
Onsitehard

Round 1 — Behavioral

A standard set of leadership questions, one by one:

  • Self-introduction
  • Pick a project where you had the strongest ownership, or learned the most from, and go deep on it
  • How did you measure success for this project?
  • What's the strongest team environment you've been part of?
  • A time you had to make a fast decision and live with the consequences
  • A time you got constructive feedback from a manager or coworker — how did you handle it, what did you learn
  • What's your biggest strength?
  • Ever had a conflict with a coworker? What was the outcome, what did you learn
  • Questions for the interviewer

Round 2 — Coding #1

Q1: Given a list of numbers and a target, insert + or * between the numbers (you can't reorder them) and ask whether you can reach the target — return a bool. Evaluate left to right first, ignore operator precedence.
DFS / backtracking, follow-up asked about time/space complexity (2^n, stack depth n)

Q2 (follow-up): Keep the function above as is, write a new function with the same signature, but this time respect operator precedence (multiplication before addition), and also return all expressions that reach the target.

Round 3 — Coding #2

The interviewer worked on ad retrieval / candidate generation. This round was clearly a three-part sweep-line / difference-array follow-up chain:

Q1: Given a bunch of logs, each line is (pin_id, start_time, end_time), meaning this pin was being interacted with by a user during that time window. Output how many pins are active during each time slice. First constrain the time window to just 60 seconds (timestamps 0–59).
Difference map: +1 at start, −1 at end, sweep left to right accumulating.

Q2: Remove the "only a 60-second window" constraint — timestamps can be any value. Does the same approach still work? What's the complexity now?
You can't iterate 0 to 60 anymore, instead sort the timestamps that actually appear and sweep → O(k log k)

Q3: Remove the assumption that "pins don't repeat" — the same pin can be interacted with by multiple users in overlapping time windows, and the output wants the deduplicated pin count.
A plain counter isn't enough anymore — you need to maintain, for each time point, a "set of pins to add / set of pins to remove," plus a map from pin_id to its current active count; when the count hits zero, delete the key, and use the number of keys in the map as the current unique pin count.

Round 4 — System Design: Search Typeahead / Autocomplete

Problem: given a prefix, return the top 10 suggestions ranked by search popularity; exact prefix match; requires real-time freshness (right after a World Cup goal, the autocomplete needs to reflect it immediately). Opened by saying "let's assume it fits on a single machine for now, we'll scale later." Given scale: 1 billion users x 10 searches per day each.

Follow-ups (roughly in order):

  • Why use a trie instead of a direct KV store (prefix → top 10)?
  • How often does the offline job run?
  • After the offline job finishes and swaps in the new trie, don't you lose the real-time updates from the hours in between?
  • So what's actually different between offline batch processing and pure streaming?
  • Does accuracy matter in this system?
  • What if it doesn't fit on one machine, or QPS is too high?
  • How do you handle uneven sharding (entries starting with "A" are way more common than "Z")?
  • The distribution shifts over time and one small shard suddenly blows up — how do you handle that dynamically? Walk through it step by step (they wanted new-node warmup plus routing switchover covered)
  • What if the tree itself isn't big but QPS is too high? How does a replica sync with the leader?

Round 5 — System Design: Bulk Update of Merchant Product Attributes

The interviewer was a senior full-stack engineer from the Relevance Measuring team.

Problem: design a system for merchants to upload/update product attributes (price, stock status, description, images) to annotate a product pin. For images, merchants upload the original and the server resizes it; the system needs to support both single-item updates and bulk file updates for an entire catalog. Image updates are lower priority.

Given numbers: 50,000 merchants, 1 billion products; write spikes 0–100k QPS, reads a fairly steady 100k QPS; roughly 100 batch jobs; a normal attribute payload is ~1KB, images average 500KB; price and stock need to take effect quickly, images can lag.

Follow-ups:

  • What database would you choose, and why
  • If a single-item update and a batch update hit the same product at the same time, how do you handle the conflict

Published

Curated and edited by PracHub

Practice the questions from this interview

Discussion

Sign in to join the discussion. The author is notified of every comment.

Loading comments…

Interview at a glance

Company
Pinterest
Role
Software Engineer
Rounds
Onsite
Difficulty
hard
Interview date
Sep 2026
Questions from this interview
6 questions

Real Pinterest interview experiences

First-hand reports from Pinterest candidates — the rounds, the questions they were asked, and how it went.

All 22 Pinterest interview experiences