Month 1–2: Language + databases
Pick ONE backend stack — Python/Django, Node/Express, Go, or Java/Spring. Stop comparing. Learn SQL deeply: joins, indexes, EXPLAIN. Build a CRUD API talking to Postgres. Hand-write the migrations.
Month 3: HTTP fundamentals + auth
REST conventions, HTTP semantics, idempotency. Build a real auth system with email + password (yes, even though Supabase exists — you need to understand the bits before you use the abstraction).
Month 4: Production concerns
Logging, error handling, retries, idempotency keys, rate limiting. Build a project that calls an external API (Stripe, OpenAI, Paystack) and handle every failure gracefully. This is the work backend engineers actually do.
Month 5: Infrastructure
Docker, one cloud provider end-to-end (AWS or Fly.io or Railway), a CI pipeline. Deploy your project. Add monitoring (Sentry free tier). Add a Postgres backup cron.
Month 6: System design + apply
Read Designing Data-Intensive Applications (chapters 1–5). Apply to 5 remote roles/day. Track. Iterate. By the end of month 6 you should be passing first-round technical screens.