Learn

Every course, by domain

35 courses across 12 domains. 208 lessons are written; 35 more are outlined on their course pages so you can see what is coming. Start anywhere — the roadmap suggests an order.

Core Java

The language, properly: types, objects, collections, generics, and everything Java 8 through 25 added.

Advanced Java

Concurrency you can reason about, and a JVM you can read: memory model, garbage collection, class loading, profiling.

Spring

Spring Core, Boot, Data JPA and Security — the framework as it is used in production, not as it is demoed.

API Engineering

REST that survives contact with clients: design, validation, errors, pagination, versioning, idempotency, rate limits.

Databases & Data

Relational databases in depth, then MongoDB, Redis and search — indexes, transactions, isolation, locking, replication.

Microservices

Service boundaries, discovery, gateways, resilience, and the data problems distribution creates: sagas, outbox, CQRS.

Messaging

Kafka as a system: partitions, consumer groups, rebalancing, offsets, retries, dead letters, schema evolution, exactly-once.

DevOps & Cloud

Git, Maven and Gradle, Docker, Kubernetes, CI/CD, Linux, Nginx, and AWS — the path from a commit to a running service.

Testing

JUnit 5, Mockito, Testcontainers, contract and performance testing — tests that catch the bugs that ship.

Observability & Production

Logs, metrics, traces, and the discipline of diagnosing a live system: incidents, RCA, memory leaks, slow queries.

Security

Authentication, authorization, JWT, OAuth2, OWASP, secrets — the parts a backend engineer is personally responsible for.

System Design

High-level design, low-level design and distributed systems: capacity, trade-offs, failure handling, and how to argue them.