Software Development
Backend Development
Backend engineers own the data and the rules. The work is designing APIs other teams can build on, modelling data so it stays correct under load, and being the person who understands why the system is slow at 9am.
Start here
Pick one language from Stage 2 and refuse to be tempted by another for six months. Language-hopping is the single most common reason people stall on this path.
Foundations
The layer underneath every backend framework you will ever use.
RequiredHow servers and networks work
Backend bugs are usually somewhere between two machines, not inside one function.
How servers and networks work
Backend bugs are usually somewhere between two machines, not inside one function.
What to learn
- HTTP in detail
- Status codes and headers
- DNS
- Ports and processes
- TLS in outline
Tools
- curl
- Browser developer tools
Practice
Next: Linux, because that is what your code will run on.
RequiredThe command line and Linux
Production is a Linux box. Being slow in a terminal makes every later stage slower.
The command line and Linux
Production is a Linux box. Being slow in a terminal makes every later stage slower.
What to learn
- Navigating a filesystem
- Permissions
- Processes and logs
- SSH
- Basic shell scripting
Practice
Next: A language.
One language, deeply
Depth in one is worth more than familiarity with four.
Choose one primary backend language.
All three are employable. Choose on job market and on which one you will actually enjoy at 11pm on a Tuesday.
Pick onePython
The gentlest syntax and a direct bridge into data and AI work later.
Python
The gentlest syntax and a direct bridge into data and AI work later.
What to learn
- Types and data structures
- Functions and modules
- Virtual environments
- Error handling
- Testing with pytest
Tools
- Python
- FastAPI or Django
Next: APIs.
Pick oneNode.js and TypeScript
One language across frontend and backend, which is a real advantage if you already know JavaScript.
Node.js and TypeScript
One language across frontend and backend, which is a real advantage if you already know JavaScript.
What to learn
- Async and promises
- Modules
- TypeScript types
- npm and dependencies
- Testing
Tools
- Node.js
- TypeScript
- Express, Fastify or NestJS
Next: APIs.
Pick oneGo
Fast, simple and increasingly the default for infrastructure work. A smaller but well-paid market.
Go
Fast, simple and increasingly the default for infrastructure work. A smaller but well-paid market.
What to learn
- Types and structs
- Interfaces
- Goroutines and channels
- Error handling as values
- The standard library
Tools
- Go
- net/http
- chi or Echo
Next: APIs.
APIs and data
The core of the job, and where the design decisions that matter live.
RequiredDesigning an HTTP API
An API is a contract other people build against. Changing it later is expensive, so getting the shape right early pays for years.
Designing an HTTP API
An API is a contract other people build against. Changing it later is expensive, so getting the shape right early pays for years.
What to learn
- Resources and verbs
- Status codes that mean something
- Pagination and filtering
- Versioning
- Error response shape
- OpenAPI documentation
First understand
- Your chosen language
Practice
Next: SQL. Almost every API is a database with manners.
RequiredSQL and relational modelling
The highest-leverage skill on this entire path. A good schema prevents bugs that no amount of application code can fix.
SQL and relational modelling
The highest-leverage skill on this entire path. A good schema prevents bugs that no amount of application code can fix.
What to learn
- SELECT, JOIN, GROUP BY
- Normalisation
- Primary and foreign keys
- Indexes
- Transactions
- Reading a query plan
Tools
- PostgreSQL
- A SQL client
Practice
Project
beginnerA REST API with persistence
A CRUD API over a relational database with input validation, pagination, sensible error responses and documentation. No authentication yet.
- Your language
- PostgreSQL
- OpenAPI
You can design and build an API another developer could use without asking you questions.
Next: Authentication, because now the data is worth protecting.
OptionalWhen not to use SQL
Worth understanding so you can explain why you chose Postgres, which is the answer most of the time.
When not to use SQL
Worth understanding so you can explain why you chose Postgres, which is the answer most of the time.
What to learn
- Document stores
- Key-value stores
- When denormalisation genuinely helps
Tools
- MongoDB
- Redis
Next: Authentication.
Authentication, authorisation and safety
Given its own stage because it is the part juniors most often get wrong, and the part where getting it wrong is expensive.
RequiredAuthentication and sessions
Proving who someone is, and knowing when to stop believing it, is the foundation everything else sits on.
Authentication and sessions
Proving who someone is, and knowing when to stop believing it, is the foundation everything else sits on.
What to learn
- Password hashing
- Sessions versus tokens
- JWTs and their limits
- Refresh tokens and expiry
- OAuth in outline
Practice
Next: Authorisation, which is the harder half.
RequiredAuthorisation and input safety
Most real breaches are not exotic. They are a missing permission check or an unvalidated input.
Authorisation and input safety
Most real breaches are not exotic. They are a missing permission check or an unvalidated input.
What to learn
- Role and attribute based access
- Validating every input at the boundary
- Parameterised queries
- Rate limiting
- Secrets handling
- The OWASP Top Ten
Tools
- A schema validation library
- A secrets manager
Practice
Next: Making it fast.
Making it hold up
What changes when more than one person uses it at once.
RecommendedCaching and performance
The cheapest performance win available, and the easiest thing to get subtly wrong.
Caching and performance
The cheapest performance win available, and the easiest thing to get subtly wrong.
What to learn
- Cache layers
- Invalidation strategies
- N+1 queries
- Connection pooling
Tools
- Redis
Next: Background work.
RecommendedQueues and background jobs
Anything slow — email, image processing, reports — must leave the request path or your API becomes unusable.
Queues and background jobs
Anything slow — email, image processing, reports — must leave the request path or your API becomes unusable.
What to learn
- Job queues
- Retries and idempotency
- Scheduled work
- Dead letter handling
Tools
- Redis and a worker library
- A managed queue
Next: Observability.
RequiredLogging and observability
The job continues after deployment. You need to find out something is broken before a user tells you.
Logging and observability
The job continues after deployment. You need to find out something is broken before a user tells you.
What to learn
- Structured logging
- Metrics
- Tracing in outline
- Health checks
- Useful alerts
Project
intermediateA multi-user service
An API with authentication, role-based permissions, a background job, caching on the hottest endpoint, and structured logs. Load test it and write down where it breaks.
- Your language
- PostgreSQL
- Redis
- A load testing tool
You know the concurrency at which your own system falls over, and why.
Next: Deployment.
Run it in production
Where backend work stops being theoretical.
RequiredContainers and deployment
Being able to hand someone a running system, not a repository, is what closes the gap to a job offer.
Containers and deployment
Being able to hand someone a running system, not a repository, is what closes the gap to a job offer.
What to learn
- Dockerfiles
- Environment configuration
- Database migrations
- CI/CD
- Zero-downtime deploys
Tools
- Docker
- GitHub Actions
- A managed platform
Project
advancedA production-style deployment
Take your multi-user service, containerise it, deploy it behind a domain with TLS, automate migrations in the pipeline, and add alerting on error rate.
- Docker
- GitHub Actions
- A cloud provider
You can take an idea to a monitored, deployed system on your own.
Where this leads
You do not have to pick one now. These are the directions this path opens up once you are working.
DevOps Engineering
Own the pipeline and the platform rather than the feature.
View roadmapData Engineering
Your SQL and pipeline instincts transfer almost directly.
View roadmapFull Stack Development
Add the interface and own features end to end.
View roadmapSolutions Architecture
Design systems across teams rather than services within one.
View roadmapContinue your journey
The paths closest to this one. Skills overlap more than the job titles suggest.
Full Stack Development
Own a feature from the database to the button someone clicks.
ViewDevOps Engineering
Automate the path from a commit to something running in production.
ViewData Engineering
Build the pipelines that make everyone else's data work possible.
ViewCloud Engineering
From never opening a cloud console to running real workloads on one.
ViewYou do not have to do this alone
Our programs are free, taught live, and built around the same progression. Join one and work through it alongside other people.
