Java Backend
Server-side Java with Spring Boot: REST APIs, databases, transactions, security, testing and running in production.
- 01
Modern Java: records, sealed types and virtual threads
Write today's Java: records for data, sealed interfaces and pattern matching instead of instanceof chains, virtual threads for simple blocking code that scales, and the smaller Java 17-25 features worth using, with Kotlin side by side.
5–25 min beginner Junior & senior
- 02
Spring Boot Basics
Start a Spring Boot backend from scratch and understand what happens when it starts, from starters and auto-configuration to beans, dependency injection and configuration, in Java and Kotlin.
6–25 min beginner Junior & senior
- 03
Building a REST API
Build the API your mobile app talks to with Spring Boot or Jakarta EE, with controllers, DTOs, validation, status codes and clean error responses, in Java and Kotlin.
5–25 min beginner Junior & senior
- 04
JPA and Hibernate
Map entities and relationships, query with Spring Data repositories or Jakarta Persistence, understand lazy loading and the persistence context, and avoid the N+1, LazyInitializationException and pagination traps.
5–25 min intermediate Junior & senior
- 05
Transactions
Keep data consistent with @Transactional in Spring or Jakarta EE, know exactly when a transaction rolls back, prevent lost updates with optimistic locking, and keep slow calls and messages out of your transactions.
7–30 min intermediate Junior & senior
- 06
Spring Security, JWT and OAuth2
Protect a Spring Boot API with a security filter chain, validate JWT access tokens from an OAuth2 authorization server, check permissions per endpoint and per object, and get mobile login right with authorization code and PKCE, in Java and Kotlin.
4–25 min intermediate Junior & senior
- 07
Testing with JUnit, Mockito and Testcontainers
Test a Spring Boot backend at the right level, from fast unit tests with mocks to web-layer slices with MockMvc and integration tests against a real PostgreSQL in Testcontainers, in Java and Kotlin, and avoid tests that pass while production fails.
4–25 min intermediate Junior & senior
- 08
Configuration and profiles
Configure a Spring Boot service the same way in every environment with application.yml, typed and validated @ConfigurationProperties, profiles and environment variables, and know which value wins when the same setting is defined in five places.
4–25 min beginner Junior & senior
- 09
Caching with Redis
Speed up a Spring Boot or Jakarta EE API with Redis and cache annotations (Spring's or JCache's), choose keys and TTLs, keep cached data correct after updates, and survive stampedes, deploys and Redis outages.
5–25 min intermediate Junior & senior
- 10
Messaging with Kafka
Publish and consume events with Apache Kafka and Spring Boot, using keys for ordering, consumer groups for scale, retries and dead-letter topics for failures, and idempotent consumers and the outbox pattern so no event is lost or applied twice.
4–30 min intermediate Junior & senior
- 11
Observability: logs, metrics and tracing
Know what your backend is doing in production: structured logs with trace ids, Micrometer metrics for rate, errors and latency percentiles, and distributed traces across services, in Spring Boot with Java and Kotlin, plus the mistakes that make each one useless.
4–25 min intermediate Junior & senior
- 12
Docker and deployment
Package a Spring Boot service as a small, secure, layered container image, size the JVM correctly for container memory limits, and deploy without downtime with health probes, rolling updates and expand-and-contract database migrations.
4–25 min intermediate Junior & senior
- 13
JVM performance and garbage collection
Understand how the JVM's garbage collectors and JIT compiler affect a Spring service's latency and memory, choose between G1 and ZGC, and find real bottlenecks with metrics, JFR, profilers, heap dumps and JMH instead of guessing.
4–25 min advanced Junior & senior