Modern Java in Production
A path through the Java material on this site, in the order it makes sense: what the language gives you now, the patterns that survive a code review, and what breaks at 3am.
What you'll learn
- Know what a record declares for you, and the three places it is the wrong tool
- Model closed sets with sealed types so the compiler catches the case you forgot
- Explain why == on Strings and boxed Integers passes its own tests and fails in production
- Choose composition over inheritance for a reason you can state out loud
- Tell which workloads virtual threads help, and why throughput sometimes does not move
- Set two timeouts, and retry without turning a degradation into an outage
- Read a circuit breaker's three states and say who each one protects
- Instrument a service so an incident is legible: percentiles, trace context, error budget
Course content
The language2 lessons · 27m
Values and objects2 lessons · 29m
Concurrency and cost2 lessons · 28m
Requirements
- Java 8 or later, used for something real
- Comfort reading a stack trace
Java 8 or later in anger. No Spring Boot needed until the third lesson.
Description
The posts on this site were written one at a time, as things came up. That is fine for a blog and unhelpful if you are trying to learn a subject: the order is the order I happened to hit the problems in, not the order that teaches them.
This course fixes the order. Each lesson frames one idea, shows the shape of it in code, and then points at the post that goes properly deep. The quiz at the end of a lesson is the honest test of whether the reading landed — it will not tell you which questions you missed, on purpose.
Nothing here is gated. Sign in only if you want the progress marks to follow you to another machine.
Who this is for
- Engineers who write Java and have never had time to read the release notes
- Anyone who has been paged for a timeout they did not set