Ed McCormic Source on GitHub
All specs

System design builds

Printroom (Instagram)

Photo and video posts with direct-to-S3 uploads and a hybrid fan-out feed, from the Hello Interview Instagram breakdown.

View code on GitHub

Problem

Feeds are where social apps get hard. Fan-out on write is cheap to read but explodes for celebrity accounts, while fan-out on read is the reverse. The design calls for a hybrid, and this project builds it.

Goals

  • Upload media straight to S3 with presigned URLs (multipart for large videos), keeping big files off the API
  • Follow and unfollow
  • A chronological feed: fan-out on write for most authors, with celebrity posts merged in at read time

Requirements

  • Post photos and videos
  • S3 → SQS notifications drive media-processing workers
  • JUnit/Mockito and Vitest tests, plus Postman scripts
  • Login (added after the first pass asked “account for login?”)

Tech stack

Layer Choice
Backend Spring Boot 3.5 (Java 21) API and SQS workers
Frontend Next.js 16 (App Router)
Data DynamoDB, S3, SQS, Redis
Infra LocalStack locally, Terraform to AWS

Open questions

  • At what follower count should an author switch from push to pull? It’s a fixed threshold today.

Changelog

  • 2026-09-24: Built, then added authentication