Pre-release. Stages 1 to 4 of the Java and Spring Boot track are written.
Learn software engineering by building one real system.
Start with a small Java program and keep going until it's an online shop with a database, a secure API, tests, caching, messaging and a deployment pipeline. Each concept arrives when the shop needs it, and you write the code yourself.
01How it works
Concepts show up when the code needs them
Nothing is taught in a vacuum. The shop grows one feature at a time, and every feature brings the ideas it depends on.
- The problem first
- Each lesson opens with a problem the shop has right now: prices that round wrong, orders that vanish on restart. Then it explains the idea behind the fix, how it works underneath, and when it's the wrong tool.
- Your code, real tests
- You write the code in a real editor, against the same tests the reference solution passes. If you get stuck, open the reference solution next to your own.
- Bugs on purpose
- Some lessons hand you a bug instead of a feature: a wrong refund, a report that got slow, an import that silently changed nothing. You find the cause, fix it, and prove the fix with a test.
- Decisions explained
- Every big decision comes with its reasoning and the alternatives, and some are exercises: pick an approach for the shop, give your reasons, and see how they hold up.
02A lesson
Ten parts, always in the same order
You always know where you are. Read the theory first, or go straight to the code and come back when something doesn't make sense.
- 1
Problem and context
What the shop needs and why it needs it now.
- 2
Theory
How it works inside, when to use it, common mistakes.
- 3
Syntax and code
Small examples you can run before touching the project.
- 4
Architecture
Where the change sits in the system, with a diagram.
- 5
Implementation
Step by step, in your editor.
- 6
Testing
The tests that define done, and how to write the next one.
- 7
Debugging
A real failure, the real error output, and how to trace it.
- 8
Decisions
Why the reference does it this way, and what else would work.
- 9
Practice
Tasks with no instructions, to check it stuck.
- 10
Summary
Concepts, files and techniques, as revision notes.
03Three kinds
Lessons, challenges and bugs
Most lessons teach. Challenges check that it stuck, with only requirements and tests. Debugging scenarios hand you a broken shop.
| Compared | Lesson | Challenge | Debugging |
|---|---|---|---|
| In stages 1–3 | 52 | 13 | 13 |
| What you get | Ten parts, from the problem to the summary, and starter code with the gaps marked | A brief, requirements and acceptance criteria. No steps. | A symptom from production, the logs and output, and the code that causes it |
| The reference solution | Open it next to your code whenever you like, with notes on the lines that matter | Locked until your code passes, or until you ask for it | The root cause and the fix are its last two parts, for when you've looked |
| Hints | — | One at a time, if you want them | — |
04Debugging
Debugging is part of the course, not an accident
Thirteen scenarios so far, each from the shop you're building. Every one comes with the real error output, and ends with a test that proves the fix.
org.springframework.dao.IncorrectResultSizeDataAccessException:
Incorrect result size: expected 1, actual 2
id | payment_reference | region | placed_at
----+-------------------+----------+------------------------
1 | PAY-1 | DOMESTIC | 2026-11-09 09:00:00+00
2 | PAY-1 | EU | 2026-11-10 09:00:00+00- The missing item
- The stock that moved
- The wrong refund
- Reservations that vanish
- Everything half price
- The silent import
- The slow report
- The shop that wouldn't start
- The deal that never applied
- Someone else's keyboard
- When the pager is down
- The search that found everything
- Two orders, one payment
05Curriculum
One shop, eight stages
The same codebase from the first lesson to the last. You don't start over when the topic changes; you change the system you already have, which is what the job is actually like.
- 1
Programming foundations
A product catalogue in plain Java: classes, records, collections, exceptions.
Written
- 2
Spring Boot foundations
The catalogue becomes a Spring application, with configuration, tests and events.
Written
- 3
Database engineering
Products and orders move into PostgreSQL, with migrations, transactions and indexes.
Being written
- 4
Backend development
A REST API with validation, error handling, JWT authentication and API docs.
Planned
- 5
Software architecture
A modular monolith with boundaries you can explain and defend.
Planned
- 6
Advanced backend engineering
Caching, concurrency, and order processing through a message broker.
Planned
- 7
Distributed systems
A few modules become services, with a gateway, sagas and circuit breakers.
Planned
- 8
Production engineering
Docker, Kubernetes, CI/CD, and the metrics, logs and traces to run it.
Planned
A stage opens when every lesson in it is written and every test passes. Not before.
06Your code
Your code leaves with you
Download any milestone, your code or the reference, as an ordinary repository. It builds with the Maven wrapper on any machine with Java, and has its own README, decision log, tests and CI workflow. It doesn't need Forgestead to run. Changed it elsewhere? Import it back.
- spring-boot-ecommerce
- README.md# what you built, how to run it
- mvnw# fetches Maven for you
- pom.xml
- .github/workflows/ci.yml# tests on every push
- docs/DECISIONS.md# why the code looks this way
- src/main/java/shop
- Cart.java
- Receipt.java
- src/test/java/shop# the lessons' tests
- .forgestead.json# lets you import it back
07What's next
One finished track before the next one starts
One complete course before ten half-written ones. Software Engineering is first; the others follow, in this order.
Software Engineering
Java and Spring Boot first; C#, Go, Rust, Python and Node.js after
In development
AI and Machine Learning
Data science, deep learning, LLM engineering, MLOps
Planned
DevOps and Cloud
Linux and networking, Docker and Kubernetes, CI/CD, infrastructure as code
Planned
System Design
Caching and scaling, messaging, replication and consistency
Planned
Make an account and start with the first lesson
Your progress, code and exports live in your account. It's free while the course is in pre-release.
Create an account