Skip to content
SeeItFlow
System Design · Interview Perspective

Interview Perspective

How to approach a social media platform design interview — what to say, what order to say it in, and where most candidates go wrong.

Mangesh MandlikLast updated:
Interview 01

Interview Opening

The goal is to demonstrate engineering judgment — the ability to reason about trade-offs — not to recite a memorized architecture. Do not teach yourself a memorized speech; teach yourself a reasoning sequence.

1. Clarify scope — confirm this covers posts, feed, follow, likes/comments, and photo/video upload. 2. Clarify whether Stories, Reels, Search, or DMs are explicitly excluded — they usually are, and saying so out loud controls scope early. 3. Establish workload/scale assumptions — rough numbers of users, posting frequency, read-to-write ratio. 4. Separate media bytes from metadata explicitly — these have completely different scaling properties. 5. Identify follower-distribution skew — name that most accounts have modest follower counts while a few have enormous ones. 6. Build a simple architecture first. 7. Evolve the media path and the feed path independently, since they solve different problems.

Interview 02

Interview Roadmap

Rather than re-explaining the architecture here, this roadmap points to where each major topic is covered in depth — use it to navigate rather than to memorize.

Media

Media Upload Architecture and Media Processing Pipeline cover direct-to-object-storage upload, resumability, and asynchronous processing states.

Delivery

Object Storage & CDN Delivery covers immutable variants, viral-media cache behavior, and the three separate steps of media deletion.

Social graph & fanout

Social Graph Storage, Fanout Queue & Workers, and Hybrid Fanout Strategy cover both graph access directions, batching/idempotency, and push/pull strategy transitions.

Feed composition

Feed Candidate Generation, Feed Ranking Pipeline, and Feed Pagination separate candidate bounding from scoring from stable pagination.

Interactions & correctness

Likes, Counters & Comments and Post Lifecycle, Privacy & Visibility cover counter scalability and serving-time correctness after deletion/privacy changes.

Interview 03

Question Bank: Likely Questions & Follow-Ups

Realistic questions an interviewer is likely to ask, the follow-ups that push past a first answer, and what each follow-up is actually testing. Each entry links to the relevant technical page rather than re-explaining mechanics here.

Scope

Q

Design Instagram / a large-scale photo and video social platform.

Strong answer angle

Do not guess at scope. Confirm whether Stories, Reels, Search, or DMs are included, whether the feed is chronological or personalized, and whether accounts can be private.

Likely follow-ups
  • Are Stories included? Reels? Search? DMs? — Tests scope control — a strong candidate confirms these are excluded rather than silently assuming.
  • Is feed chronological or personalized? — Tests whether the candidate recognizes this changes candidate generation and ranking depth needed.
  • Are accounts public or private? — Tests whether visibility rules are treated as a first-class requirement, not an afterthought.

Media Upload

Q

How would you upload a large video?

Strong answer angle

Explain direct-to-object-storage upload with a temporary authorized target, per Media Upload Architecture — bytes should not pass through the application server.

Likely follow-ups
  • Would bytes pass through your application server? — Tests whether the candidate defaults to a proxied design or recognizes the bandwidth-proxy problem.
  • What happens on a poor mobile connection? — Tests awareness of chunked/resumable upload rather than a single all-or-nothing transfer.
  • How do you resume after 80% uploaded? — Tests whether the candidate can describe resuming from the last acknowledged chunk, not restarting.
  • How do you verify integrity? — Tests knowledge of checksum validation at completion time.

Media Processing

Q

What happens after a video is uploaded?

Strong answer angle

Walk through the async pipeline and state model in Media Processing Pipeline — UPLOADING → PROCESSING → READY, with a FAILED path.

Likely follow-ups
  • When does the post become visible? — Tests whether the candidate ties visibility explicitly to the READY state rather than assuming immediate distribution.
  • What if transcoding takes two minutes? — Tests whether async processing is the answer, not blocking the upload response.
  • What if one rendition fails? — Tests partial-failure reasoning within a single processing job.
  • How do retries avoid duplicate output? — Tests idempotent processing — reprocessing the same input should not produce conflicting variants.
  • What if the file is corrupt? — Tests the FAILED/quarantine path, per Corrupt / Poison Media.

CDN

Q

How do you serve a viral photo/video globally?

Strong answer angle

Explain edge caching, cache hierarchy, and request coalescing, per Object Storage & CDN Delivery.

Likely follow-ups
  • What happens on an edge miss? — Tests basic understanding of origin fetch-and-fill.
  • What if many edges miss simultaneously? — Tests awareness of the cold-CDN-cache scenario specifically, per Viral Media With Cold CDN Cache.
  • What if CDN is partially unavailable? — Tests the distinction from a cold-cache surge, per CDN Degradation.
  • How do you delete cached media? — Tests whether the candidate separates application-level unavailability, cache invalidation, and underlying object deletion as three distinct steps.

Social Graph

Q

How do you store follow relationships?

Strong answer angle

Explain both adjacency directions and access-pattern-driven storage, per Social Graph Storage.

Likely follow-ups
  • How do you get everyone I follow? — Tests the following-lookup direction.
  • How do you get all followers of an author? — Tests the follower-lookup direction — a different access pattern from the above.
  • What if the author has 50M followers? — Tests awareness of high-degree nodes and paginated/streamed reads rather than loading the full list.
  • Do you need a graph database? — Tests whether the candidate treats this as automatic or reasons about it as one of several viable access-pattern-driven choices.
  • What happens on unfollow? — Tests recognition that this changes future fanout but doesn't retroactively rewrite already-delivered feed entries.

Feed Generation

Q

How do you generate the home feed?

Strong answer angle

Walk through fanout-on-write vs fanout-on-read vs hybrid, per Hybrid Fanout Strategy.

Likely follow-ups
  • Why not calculate everything at read time? — Tests whether the candidate can explain the cost growing with follow count, not just assert it's slow.
  • Why not fanout every post at write time? — Tests understanding of write amplification for high-fanout accounts.
  • What happens for celebrity accounts? — Tests the hot-user problem specifically.
  • How do you decide push vs pull? — Tests awareness of the Fixed vs Adaptive Fanout Classification decision.

Fanout Correctness

Q

What if a fanout worker retries the same batch?

Strong answer angle

Explain idempotent feed writes keyed on (feed_owner_id, post_id), per Fanout Queue & Workers.

Likely follow-ups
  • How do you prevent duplicate feed entries? — Tests whether the candidate names the specific logical uniqueness key, not just 'idempotent.'
  • What if it crashes halfway through? — Tests checkpointed batch processing rather than one giant atomic job.
  • How do you resume? — Tests whether the candidate connects this to resuming from the last checkpoint.
  • What if the queue is six hours behind? — Tests controlled backlog draining, per Fanout Backlog / Partial Delivery.

Candidate Generation & Ranking

Q

What exactly does your ranking service rank?

Strong answer angle

Separate candidate generation from ranking, per Feed Candidate Generation.

Likely follow-ups
  • Every post from every followed account? — Tests whether the candidate recognizes ranking never operates over the full corpus.
  • How do you bound candidate count? — Tests the merge/dedup/eligibility-filtering steps before ranking.
  • Where does deduplication happen? — Tests whether the candidate names stable post-ID dedup specifically.
  • Where are private/deleted posts filtered? — Tests the connection to Post Lifecycle, Privacy & Visibility.
  • What if ranking is slow? — Tests timeout-budget reasoning, per Ranking Slow or Unavailable.

Pagination

Q

How do you paginate an infinite feed?

Strong answer angle

Explain why offset pagination breaks and present cursor-based alternatives, per Feed Pagination.

Likely follow-ups
  • Why not OFFSET/LIMIT? — Tests whether the candidate explains instability against a changing dataset, not just 'it's slow.'
  • What happens when new posts arrive? — Tests reasoning about shifting offsets and stable cursors as the fix.
  • What if ranking changes between pages? — Tests recognition that ranked-feed pagination is genuinely harder than chronological pagination.
  • How do you avoid duplicates? — Tests knowledge of deduplication as a practical mitigation for live re-ranking.

Deletion & Privacy

Q

A post is already present in 10M feed stores and is deleted. What happens?

Strong answer angle

Explain serving-time validation, per Post Lifecycle, Privacy & Visibility — correctness comes from read-time filtering, not synchronous cleanup everywhere.

Likely follow-ups
  • Do you synchronously remove 10M entries? — Tests whether the candidate recognizes this as unnecessary and expensive, proposing async cleanup instead.
  • What if the author blocks the reader? — Tests generalization of the same read-time filtering mechanism to a different visibility trigger.
  • What if the account becomes private? — Tests the same generalization again.
  • What about CDN-cached media? — Tests knowledge of the three separate deletion steps in Object Storage & CDN Delivery.

Likes

Q

A viral post receives 10M likes. How do you handle it?

Strong answer angle

Separate logical idempotency from aggregate-counter scalability, per Likes, Counters & Comments.

Likely follow-ups
  • How do you prevent duplicate likes from retries? — Tests the (user_id, post_id) uniqueness key specifically.
  • Would you increment one DB row? — Tests recognition of the hot-row problem, per Like Counter Hotspot.
  • Is the displayed count exact? — Tests acceptance of eventual consistency for a non-critical aggregate.
  • How does unlike work? — Tests recognition of unlike as reversal with the same eventual-aggregate-update pattern.

Failure

Q

What if the Feed Store disappears?

Strong answer angle

Explain derived-state rebuild, per Feed Store State Lost.

Likely follow-ups
  • Is feed state source of truth? — Tests the source-of-truth-vs-derived-state distinction, per Data Ownership & Storage Model.
  • Would you fanout-on-read for every request? — Tests whether the candidate recognizes this recreates the original scaling problem rather than degrading gracefully.
  • How do you prevent database overload? — Tests rate-limited rebuild and bounded read-time composition as the answer.
  • How do you rebuild feeds? — Tests a concrete rebuild source (recent posts from followed accounts), not a vague 'recompute it.'

Scale Curveballs

Q

What if uploads suddenly increase 20×?

Strong answer angle

Tests recognition that this stresses Media Processing Pipeline capacity specifically — a backlog problem bounded by CPU/GPU/storage, not something autoscaling alone fully solves.

Likely follow-ups
  • How would you prioritize the backlog? — Tests fairness reasoning across many uploaders rather than strict FIFO regardless of size.
Q

What if a user follows 5,000 accounts?

Strong answer angle

Tests whether the candidate recognizes this stresses the pull/read side of feed composition — the opposite pressure point from the celebrity write-side problem.

Likely follow-ups
  • Does this change your fanout classification for that user's followed accounts? — Tests whether the candidate treats follower count and following count as different axes of the same fanout-cost question.
Q

What if a celebrity posts during a global event?

Strong answer angle

Combine Viral Post / Hot User Surge with general read-surge handling across cache, CDN, and ranking simultaneously.

Likely follow-ups
  • Which layer absorbs most of that surge? — Tests whether the candidate names cache/replicas/CDN specifically, not just 'the system handles it.'
Q

What if one video becomes globally viral?

Strong answer angle

Tests recognition that this compounds several scenarios at once — cold CDN cache pressure, hot-user read pressure, and elevated ranking/like-counter load — not a single isolated failure mode.

Likely follow-ups
  • Would your individual mitigations still work together? — Tests reasoning about compounding failure modes rather than reciting each mitigation in isolation.
Q

What if media processors are hours behind?

Strong answer angle

Tests connection to Media Processing Backlog — a capacity problem communicated via the explicit PROCESSING state, not a correctness failure.

Likely follow-ups
  • What does the user see in the meantime? — Tests whether the candidate proposes an honest PROCESSING indicator rather than a silent failure or fake success.
Q

What if a user has not opened the app for six months?

Strong answer angle

Tests reasoning about a stale or partially-evicted feed store, and whether the candidate proposes read-time composition or a partial rebuild rather than assuming the precomputed feed is simply ready to serve.

Likely follow-ups
  • Would you keep pushing fanout to inactive users the whole time? — Tests cost-awareness — pushing fanout to a user who never reads it is pure waste, worth reconsidering for very inactive accounts.
Q

What would you simplify for an MVP?

Strong answer angle

Tests prioritization under constraint — a strong answer identifies that hybrid fanout classification, a full ranking model, multi-layer caching, and cursor-based ranked pagination are all scale-justified investments that could be deferred, while durable post storage, basic fanout-on-write, and asynchronous media processing cannot.

Likely follow-ups
  • At what point would you introduce each deferred piece? — Tests whether the candidate ties each simplification to a specific scale threshold rather than treating the MVP as a permanent design.
Q

How would the design change for a chronological-only feed?

Strong answer angle

Tests whether the candidate recognizes this removes most of Feed Ranking Pipeline's complexity while leaving fanout, candidate generation, and pagination largely intact — ranking is an additive layer, not a foundational requirement.

Likely follow-ups
  • Does pagination get simpler too? — Tests recognition that chronological pagination is genuinely simpler than ranked-feed pagination specifically.
Q

How would adding recommended posts change candidate generation?

Strong answer angle

Tests whether the candidate keeps recommended content as one additional candidate source rather than redesigning the whole pipeline, while explicitly not expanding this into a full recommendation-system design.

Likely follow-ups
  • Would ranking need to change? — Tests whether the candidate recognizes ranking would need a signal to distinguish followed-account posts from recommended ones, without over-engineering the answer.

A 60-second answer skeleton

1. Scope and assumptions: posts, feed, follow, likes/comments and media upload; state rough DAU, posting rate and the read-to-write ratio. 2. Split media bytes (direct-to-object-storage upload, async processing, CDN delivery) from metadata. 3. Feed: fanout-on-write for normal accounts, read-time pull for very high-follower accounts, bounded by a tunable threshold. 4. Consistency: eventual for feeds and counters, with read-time visibility checks for delete/private/block. 5. Failure: name the first signal and the degraded mode for fanout lag, CDN trouble and a lost feed store.

Key takeaways
  1. 01Lead with the media-versus-metadata split and the follower-distribution skew before naming any component.
  2. 02Present hybrid fanout as a tunable threshold, not a fixed number, and name the read-time cost it shifts.
  3. 03State eventual consistency explicitly and pair it with read-time visibility filtering for correctness.
  4. 04Close with one failure per layer: fanout backlog, CDN degradation, and feed store loss, each with a bounded fallback.