Backend Engineer Starter Kit
The minimum set of topics that turns a programmer into someone who can ship and operate a backend service in production.
- Reading time
- ~70 min (+20 min optional)
- Level mix
- 13 beginner · 6 intermediate
A working backend engineer needs to do several different jobs well: write code that runs, talk to other systems over the network, persist data correctly, and operate the whole thing in production. This path walks through the smallest set of topics that covers all four jobs at a level where you can ship something real and keep it running.
It assumes you can already write code in some language; everything else builds from there.
Roadmap
Loading progress...
Foundations
A formal language for instructing computers — the human side of software.
A way of organising values in memory so that the operations you care about — find, insert, delete, sort — are efficient.
- Big OOptional
A notation for describing how an algorithm's cost grows as its input grows — the standard way computer scientists compare algorithms.
Tools
Tracking changes to code (and other files) over time, so teams can collaborate without trampling each other's work.
The dominant distributed version control system. Tracks snapshots of a project's files and supports lightweight branching.
Reviewing someone else's proposed code change before it lands — the most reliable practice for catching bugs and spreading knowledge in teams.
Talking to the world
The request/response protocol that powers the web — how browsers and servers talk to each other.
An architectural style for HTTP-based APIs that models the world as named resources accessed via standard verbs — the dominant way services talk to each other on the web.
- TLSOptional
The protocol that encrypts and authenticates almost all secure traffic on the internet — the "S" in HTTPS, IMAPS, SMTPS, and many more.
Data
An organised collection of data with a system around it that lets you store, retrieve, update, and query it efficiently.
A declarative language for querying and manipulating relational databases — you say what you want, the database figures out how.
Auxiliary data structures a database maintains so it can answer queries without scanning every row — the single biggest knob for query performance.
- ACID TransactionsOptional
A transaction model that guarantees Atomicity, Consistency, Isolation, and Durability — the contract that keeps databases reliable under failures and concurrency.
Shipping it
Writing code that runs your code to check it does what it should — the safety net that lets teams change software without breaking it.
A small, fast test that exercises one unit (function, class, module) in isolation — the foundation of the testing pyramid.
An automated pipeline that builds, tests, and ships code on every change — so the path from "git push" to "in production" is short, repeatable, and safe.
The act of getting new versions of software running in production safely, predictably, and without downtime.
Continuously observing a running system — collecting metrics, alerting on anomalies — so problems are caught before users notice.
Recording discrete events from a running system, so the engineers operating it can reconstruct what happened — and when, and why.