Arc 2 of /root. Code becomes services. ~8 phases that install everything a working backend engineer needs to ship. Exit ramp: Mid-level Backend Engineer

Arc 1 built the engineer. Arc 2 builds the backend engineer. The difference: Arc 1 made you fluent in two languages and gave you the engineering hygiene to ship CLIs. Arc 2 makes you competent at the actual job most software engineers do: designing and operating services that talk to databases, expose APIs, authenticate users, do work asynchronously, observe themselves under load, and survive being called by other services.

There’s no platform tier alive yet; Kubernetes lands in Arc 3. Arc 2 ships your service running locally in Docker, with the discipline of a real production team but the deployment footprint of a developer’s laptop. By Arc 3 you’ll move that service to K3s + ArgoCD on the homelab; by Arc 4 the data tier hosts its persistent state; by Arc 5 ML and AI capabilities sit on top. The substrate is still ahead. Arc 2 builds what runs on the substrate.


What you’ll know at the end of Arc 2

You’ll have built and shipped one real backend service end-to-end, exercising every capability above. The service is yours: domain of your choice (RSS aggregator, URL shortener, link aggregator, paste service, todo API, whatever interests you). The phases supply the capabilities; you supply the product.


Phase map

PhaseTitleWeeksHoursCapability addedPattern depth focus
9SQL & Relational Databases6-860-80Postgres backing your servicewrite-ahead-logging, mvcc, indexes-as-pattern, query-planning
10Redis & Caching Patterns4-640-60Cache layer on top of Postgrescache-aside, write-through, cache-stampede
11HTTP, REST, gRPC & API Design5-750-70REST + gRPC APIs with OpenAPI contractsrest-as-pattern, grpc-as-pattern, api-versioning
12Authentication & Authorization5-750-70OAuth/JWT/session-based auth + RBACtoken-vs-session, oauth-flow, rbac
13Containers as a User4-640-60Dockerized service + docker-composecontainerization-as-user, image-layers, multi-stage-builds
14Message Queues + Event-Driven Patterns5-750-70Background work + webhooksmessage-queue, pub-sub, delivery-semantics, idempotent-consumer
15Service Observability5-750-70OTel instrumentation + dashboardsthree-pillars, structured-logging, distributed-tracing, red-method
16Backend at Scale5-750-70Rate limiting + idempotency + retries + circuit breakerstoken-bucket-rate-limiting, idempotency-keys, retry-with-jitter, circuit-breaker
Arc 2 Final Exam2-320-30
Total~41-58 weeks~410-580 hrsOne real backend service shipped~15 backend patterns OUTLINE

Pace is yours; progress measured by pattern promotion + shipped artifacts.


What ships publicly during Arc 2

ProjectPhaseRoleLaunch energy
Your backend service9-16Real service of your choice (RSS aggregator, URL shortener, paste service, todo API, etc.), exercises every Arc 2 capabilityQuiet ship: public on GitHub by Phase 13 (when it’s containerized); README + docker-compose; no loud launch (that’s for forge in Arc 3)
chronicle continues9 onwardService runbooks, ADRs, incident notes (private)Private
sift + pulse(maintained)Arc 1 artifacts; minor patches as neededQuiet maintenance

Your service is the Arc 2 portfolio artifact. By end-of-Arc 2 a reviewer who opens its README sees: a real product, clean architecture (per Arc 1 Phase 5), proper tests (per Arc 1 Phase 7), CI/CD (per Arc 1 Phase 8), database + caching + auth + APIs + observability + scale patterns. That’s a recognizable backend engineer’s portfolio.


Patterns deepened in Arc 2

By end of Arc 2, these reach OUTLINE (DEEP requires 3+ months of operating something dependent on the pattern; some Arc 2 patterns will be OUTLINE this year and reach DEEP in Arc 3+ as basecamp operates them):

Storage and data

Caching

Networking + APIs

Security

Infrastructure

Distributed systems (first touch)

Observability

Resilience

That’s ~25 patterns first-touched in Arc 2.


Hardware requirements

Arc 2 runs Postgres, Redis, your service, plus orchestration via docker-compose. 32GB RAM is recommended by Phase 13 (8GB minimum). If your Arc 1 laptop has 16GB, plan a small mini-PC upgrade or accept slow tests.

Full breakdown: homelab/hardware.


Arc 2 Final Exam

Scenario-based final exam. Three parts:

  1. Build (180 min): extend your service with a new feature end-to-end: new DB table, new API endpoint, async webhook, OTel-instrumented, rate-limited, with auth scope check
  2. Debug (180 min): three parallel scenarios from Phases 9, 14, 16 catalogs
  3. Articulate (90 min): ~1500 words: walk a request through your service from HTTP receive to response, citing every layer (auth, cache, DB, queue, retry, observability)

See the full Arc 2 Final Exam spec for the scoring rubric.


Reading order

  1. This index: you are here
  2. Phase 9: SQL & Relational Databases: start here
  3. Phases 10 to 16 in order
  4. Patterns: as a phase references one, read it under patterns/ and promote STUB to OUTLINE
  5. Arc 2 Final Exam: open ~2 weeks before end of Phase 16

For people who already build backend services daily: skim Phases 9, 11, 12; spend the time on Phase 15 (Observability) and Phase 16 (Backend at Scale) where the senior delta lives.


Arc 2 graduation

You can:
- Design a Postgres schema + write queries that don't degrade at scale
- Apply caching deliberately, with awareness of stampede + invalidation
- Design REST and gRPC APIs that survive versioning
- Add auth (OAuth/JWT/session) with the right trade-offs
- Containerize a service and run it via docker-compose
- Add async event-driven work with the right delivery semantics
- Instrument a service end-to-end with OpenTelemetry
- Apply backend-at-scale patterns (rate limiting, idempotency, retries, breakers)

Exit ramp: Mid-level Backend Engineer
Confidence: real, with one shipped service exercising every Arc 2 capability

→ Continue to Arc 3: Infrastructure & Platform Engineering.