
Database & Backend Engineering: PostgreSQL, Python & FastAPI, Build secure APIs and reliable databases with PostgreSQL, FastAPI, Redis, transactions, migrations and recovery.
Course Description
Want to Become a Database or Backend Engineer? Start Here!
Have you ever wondered what happens behind the scenes when thousands of customers try to purchase tickets for the same event?
How does an application prevent two customers from booking the same seat?
What happens when a customer clicks the payment button twice, a database table becomes locked, or an API receives more requests than it can handle?
And how do professional database and backend engineers build systems that remain reliable when things go wrong?
Welcome to Database & Backend Engineering: PostgreSQL, Python & FastAPI!
This practical, project-based course introduces you to the essential skills involved in building, securing, optimising, and maintaining modern database-driven backend applications.
Rather than simply learning SQL commands or building basic CRUD APIs, you’ll explore the engineering challenges that arise when databases and backend services must work together reliably.
At the centre of the course is the Kitewell Platform, a simulated ticketing application that provides a realistic environment for learning database and backend engineering.
You’ll investigate practical scenarios involving duplicate bookings, database locks, race conditions, double charges, stale cached data, and application reliability.
By the end of this course, you’ll have developed practical PostgreSQL and backend engineering skills and applied them through a connected, real-world-style capstone project.
You join the platform team at Kitewell, a live-events ticketing company, and run its database and API the way real teams do. You work from tickets, on a running platform, while simulated customers browse and buy. Every output you see is real: the lab runs PostgreSQL 16, PgBouncer, Redis, a FastAPI service, a job worker and a fake payment provider on your own computer, in Docker.
Part 1 is the database engineer’s job: data integrity, migrations, query performance, locking, security, backups, point-in-time recovery, replication, failover and connection pooling. Part 2 is the backend engineer’s: input validation and tests, idempotent payments, caching, background jobs, observability, rate limiting and a P1 on-call incident. Each fix ends in a git commit and a closed ticket, so you finish with a portfolio repository that shows employers what you can do.
All companies, people and data in the lab are made up.
What you’ll learn
- Find and fix bad data, then add constraints so it can never happen again
- Change a live schema safely with Alembic migrations and lock timeouts
- Read EXPLAIN ANALYZE plans and add the right index without blocking sales
- Reproduce a race condition and fix it with row locking
- Give each application the least privilege it needs, and isolate tenants with row-level security
- Recover deleted data with a base backup, WAL archives and point-in-time recovery
- Build a streaming replica and run a failover drill
- Diagnose “too many clients” errors and fix them with PgBouncer, and spot table bloat from disabled autovacuum
- Validate API input and prove the fix with pytest
- Stop double charges with idempotency keys
- Cache hot pages in Redis, and invalidate them when data changes
- Move slow work to a job queue with retries, and recover failed jobs
- Add JSON request logs, Prometheus metrics and rate limiting to stop a scraper
- Lead a P1 incident from symptom to root cause, fix it live, and write the postmortem
Requirements
- A 64-bit computer with at least 8 GB of memory and 5 GB of free disk space, running Docker Desktop (Windows, Mac) or Docker (Linux)
- Basic SQL (SELECT, WHERE, JOIN) and some Python. Everything else is explained as you go
- No cloud account and no paid software
Who this course is for
- Developers and analysts moving into database engineering, backend engineering or DBA roles
- Junior engineers who want production experience before their first on-call shift
- Bootcamp and degree graduates who need real incident work for their portfolio and interviews
- Data engineers who want to understand the operational databases they read from
Who this course is for:
- Developers and analysts moving into database engineering, backend engineering or DBA roles
- Junior engineers who want production experience before their first on-call shift
- Bootcamp and degree graduates who need real incident work for their portfolio and interviews
- Data engineers who want to understand the operational databases they read from
- Aspiring Database Engineers: Individuals who want to develop practical PostgreSQL skills in database design, constraints, indexing, transactions, security, backups, replication, and performance optimisation.
- Aspiring Backend Developers: Learners interested in building secure, reliable backend applications using Python, FastAPI, PostgreSQL, and Redis, while understanding how APIs interact with databases.
- Python Developers: Programmers who want to expand beyond basic Python applications and learn backend API development, database integration, caching, background processing, and application reliability.
- SQL Developers and Database Administrators: Professionals who want to strengthen their PostgreSQL engineering skills, including query optimisation, migrations, concurrency, row-level security, backup and recovery, and database availability.
- Computer Science, IT, and Software Engineering Students: Students seeking hands-on experience with database and backend engineering concepts through practical exercises and the Kitewell Platform project.
- Junior Software Engineers: Developers who want to understand how real-world backend systems handle database transactions, API validation, retries, idempotency, caching, security, and performance challenges.
- IT Professionals and Career Changers: Motivated learners with basic programming knowledge who want to explore careers in database engineering, backend development, or software engineering through practical, project-based learning.
- Hands-On, Project-Based Learners: Anyone who prefers learning by solving realistic engineering problems, including database locking, duplicate transactions, stale Redis caches, system reliability challenges, and the Kitewell On-Sale Day capstone project.
