Production-grade backend practice

Where large scale system design gets real
Behind every high-scale system is a series of hard architectural decisions made under pressure. nurburg.dev is where you practice making them — hands-on challenges, real constraints, real tradeoffs, code that runs.

Recently added

Rate Limiter at Scale
ChallengeRedisredis
Build a distributed rate limiter that holds under high concurrency — sliding window, Redis Lua, no overshooting.
Table Partition Recreation
ChallengePostgreSQLpostgres
Transaction log queries grinding to a halt as data grows. Implement table partitioning for sub-100ms performance.
How Slack's message queue saturated at 10M users
Deep DiveMySQLmysql
A walkthrough of the architectural decisions that led to queue saturation — and how the team redesigned under load.

Platform

Stop reading about system design. Start building them.

Every challenge runs against real infrastructure — giving you a real environment to debug, iterate, and learn in.

01
Live Traffic

See exactly where your system fails under real traffic.

nurburg.dev simulates real production traffic against your design to surface bottlenecks. Learn to debug like a top Software Architect.

MySQL CPU
78%↑ 12% vs avg
order-service p95
245msSLO: 200ms ⚠
Redis avail.
99.9%30d uptime
order-service latency
p75
p95
p99
MySQL CPU usage
cpu %
Throughput (req/s)↑ 810 peak
Service health · 24h
ok
warn
error
api-gw
order-svc
mysql
redis
all services nominal now
02
Zero Setup

Open a challenge. Start building.

No Docker installs. No config rabbit holes. nurburg.dev spins up a fully configured browser-based environment in seconds — so your effort goes into learning key concepts, not setting up complex dev environments.

nurburg.dev/challenges/rate-limiter/env
main.go
limiter.go
store.go
config.go
go.mod
Makefile
package main import (  "context"  "net/http") // TODO: implement sliding windowfunc NewLimiter(  rate int,  window time.Duration,) *Limiter {  
03
Stay Sharp

One challenge a week. A different engineer in six.

Each challenge is scoped, complete, and immediately applicable. Build a habit of tackling one each week, and watch your architectural instincts sharpen over months.

This week's challenges
Rate Limiter at Scale
Distributed · ~90 min
New
🗄️
Leader Election
Consensus · ~120 min
New
🔁
Idempotent Payments
Transactions · ~75 min
Done
🔍
Distributed Tracing Pipeline
Observability · ~60 min
New
🛡️
Circuit Breaker Pattern
Resilience · ~45 min
Done

Expert Crafted

Created by engineers who've built at scale.

Challenges and deep dives crafted by engineers from Google, Cloudflare, Stripe, and Uber — people who've designed systems under real pressure, at real scale.

Arjun Kumar

Arjun Kumar

Staff Engineer, Distributed Systems

GoogleGoogle
Sneha Reddy

Sneha Reddy

Principal Engineer, Platform

CloudflareCloudflare
Priya Nair

Priya Nair

Senior SRE

StripeStripe
Rahul Mehta

Rahul Mehta

Staff Engineer, Payments Infrastructure

UberUber

The nurburg.dev newsletter

System design challenges and postmortem deep-dives.

1 email per week. No noise.

or use your email