Now in Day 36 of 254

Build a production-grade
distributed system.
From scratch.

254 hands-on lessons. You write every line of Java, Spring Boot, Kafka, and Python. No whiteboard theory. No copy-paste tutorials. A real system you can deploy.

31K+
Engineers on the journey
254
Hands-on lessons with working code
6
Self-contained modules
3×
Mon / Wed / Fri new lessons

Most engineers know about
distributed systems. Few have built one.

There are two types of content in this field — and neither closes the gap between reading and building.

📚
Theory books

Designing Data-Intensive Applications is brilliant. It doesn't teach you to write a Kafka consumer that correctly handles a poison pill at 3am.

🎯
Interview prep content

Diagrams of fictional systems no one has built. Optimised for passing interviews, not for keeping your service alive.

📹
Tutorial videos

You watch someone else code. You learn to follow, not to build. The first time you face a real production problem, you're alone.

The SDCourse approach

Every lesson ships working code. Every module builds on the last. You write every line. By the end: a real system on GitHub.

LogStream — a production
distributed log platform.

The same architecture pattern that powers Datadog, Cloudflare, and Stripe. You build it from an empty directory.

// logstream architecture
TCP Server
10K events/sec
Kafka
exactly-once · DLQ
Consumer Group
idempotent · retries
Storage
S3 archival · rotation
Elasticsearch
search · aggregations
Kubernetes
auto-scale · PagerDuty
// module 01 — tcp server
Client
connect()
ServerSocket
port 9000
Thread Pool
50 workers · submit()
handle(socket)
parse → queue
ArrayBlockingQueue
offer(event) · LogEvent
// module 01 — parsing pipeline
TCP InputStream
bytes
InputStreamReader
UTF-8 · chars
BufferedReader
readLine() → String
ObjectMapper
readValue() → LogEvent
BlockingQueue
offer() → stored
This is not a toy project.
Subscribers have used this work in portfolios for offers from Datadog, Cloudflare, and FAANG companies. Every lesson ships runnable code. Every module builds on the last.

Six modules.
One complete system.

Subscribe for the full 254-lesson journey, or jump directly to the module solving your current problem.

Module 01
Ingestion & Transport
TCP/UDP servers, batching, compression, network protocols. Your log shipper sending 10K events/sec.
Days 1–40 · 40 lessons · Java + Spring Boot
Module 02
Distributed Messaging
Kafka producers, consumers, exactly-once semantics, dead letter queues, idempotency. The fault-tolerant bus.
Days 41–90 · 50 lessons · Kafka + Spring Kafka
Module 03
Storage & Persistence
Flat files with rotation, time-series storage, compaction policies, S3 archival. Data that survives node failures.
Days 91–130 · 40 lessons · Java + AWS SDK
Module 04
Real-Time Processing
Stream processing, event parsing, enrichment, alerting pipelines. A system that reacts to events as they happen.
Days 131–170 · 40 lessons · Java + Flink
Module 05
Search & Query
Elasticsearch integration, query optimization, aggregations, dashboards. Query a year of logs in milliseconds.
Days 171–210 · 40 lessons · Elasticsearch + Kibana
Module 06
Production Operations
Kubernetes deployment, monitoring, auto-scaling, chaos testing, PagerDuty integration. Production-ready.
Days 211–254 · 44 lessons · Kubernetes + Prometheus

Be honest with yourself.

This is for you if

  • You're a mid-to-senior backend engineer preparing for staff/principal roles
  • You've read DDIA and want to actually build what's in it
  • You're tired of system design videos that never show actual code
  • You want a portfolio piece you can walk a senior interviewer through
  • Your employer will reimburse learning (most will — just ask)

This isn't for you if

  • You've never built a backend service before (start with a CRUD app first)
  • You want FAANG interview pattern memorisation (try ByteByteGo)
  • You're looking for videos — this is text lessons with working code repos
  • You want someone else to tell you the answers before you try the code yourself

From engineers who've built LogStream.

Last Tuesday I had a Kafka rebalance issue at 2am. The Day 47 lesson was the thing that fixed it. That single lesson was worth the subscription. The lifetime tier just removes the 'should I still be paying for this' question.

A
Aakash Avadhut Dhekane
Senior Engineer, Fintech · Singapore

I've been in engineering for 8 years and never actually built a Kafka pipeline from scratch. After Module 2 I understood exactly why my team's consumer was silently dropping messages. Fixed a bug that had been there for 6 months.

R
Vinayak Kukreja
Staff Engineer · Bangalore

The code actually runs. That sounds obvious but it isn't — I've done 5 other courses where the repos were broken or outdated. Every SDCourse lesson ships code I can docker-compose up and see working.

M
Michael Reed
Backend Engineer · London

DM your top 3–5 paid subscribers and ask for 2 sentences. Paste name and role above.

Three tiers.
Pick the commitment that fits.

No upsell sequences. No dark patterns. The free tier is genuinely free and genuinely useful.

Free
$0
forever
  • First 3 lessons of every module (18 free lessons)
  • Sunday weekly digest
  • All Substack Notes (daily insights)
  • Free Distributed Systems Interview Pack
  • All 254 lessons
  • GitHub repos (paid only)
Start free →
Lifetime
$599
once — never renew
  • Lifetime access — pay once, done
  • Monthly live Founding Member Q&A — Sumedh shows up, answers questions, codes if needed
  • Completion certificate (PDF, verifiable URL)
  • One year of systemdrd.com — the broader hands-on course portal
  • All future mini-series included free
  • Priority direct email access
Get Lifetime Access →

Most companies reimburse Pro Annual ($399) and Lifetime ($599) under "professional development". Just ask your manager. I'll send a receipt with your name and company on it.

Honest answers.

What if I fall behind?
That's expected and fine. The lessons don't expire. Most people take 18–24 months to work through 254 lessons. The course is a reference, not a treadmill. Come back when you're ready.
Do I need Java experience?
Yes — you should be comfortable writing Java before starting. If you've never shipped a backend service in any language, start there first. This course accelerates existing engineers, it doesn't create them.
Is this only for people at Datadog/Cloudflare scale?
No. The architecture patterns taught here apply from 100 events/sec to 10M/sec. Most engineers working with any event-driven system will find Module 2 (Kafka) and Module 3 (Storage) immediately applicable to their current job.
How is this different from Confluent's Kafka training?
Confluent teaches Kafka in isolation. SDCourse teaches you to build the entire system around Kafka — ingestion, storage, search, operations. You don't just learn to configure Kafka; you build the system that uses it end-to-end.
What's the async Q&A (Lifetime tier)?
Monthly live Q&A for Lifetime members — Sumedh shows up, answers questions, and works through code problems. No scheduling. No Zoom friction. Direct access within reason. Also includes a monthly email Q&A digest for those who can't make it live.
Can I get a refund?
Pro has a 14-day refund window, no questions asked. Lifetime ($599) — email me within 14 days and I'll refund. After 14 days you keep access. I'd rather know you're unhappy and fix it than lose you quietly.
Does the code actually run?
Yes — every lesson has a docker-compose up-able repo. If it doesn't run on a clean clone, that's a bug and I'll fix it. This is the thing I'm most careful about; broken code is broken trust.
Is there a student / geographic discount?
Yes. Email me — I run a quiet scholarship programme for ~10 people at a time. No questions asked, no judgment. If $399/yr or $599 is unreasonable for where you live, that's a real constraint and I'll work with you.

The gap between reading and building

Stop learning about distributed systems.
Start building one.

31,000+ engineers. 254 lessons. One real system on your GitHub when you're done.

Free forever · Pro $39/mo or $399/yr · Lifetime $599 once · 14-day refund guarantee