Module 0 / Lesson 0.1
Java 25 for Kotlin Developers
Build the translation table you will use for the rest of the course.
javatutorial.imdmp.com
Learn modern Java backend development by building one real Spring Boot API from scratch. No toy CRUD, no frontend detour, no fake production claims.
Read
Build
Test
Commit
Review
Built for JVM engineers
The site teaches. The Palabas repo proves. Every lesson names a concrete task, the command that verifies it, and the artifact that should exist afterward.
MVP progress is local to your browser. Hosted graders, GitHub OAuth, and AI hints wait until at least Phase 1 is fully teachable.
First public slice
Module 0 / Lesson 0.1
Build the translation table you will use for the rest of the course.
Module 1 / Lesson 1.1
Create the smallest Spring Boot app that can carry the rest of the curriculum.
Module 1 / Lesson 1.3
Wire controller to service to repository without hiding dependencies.
Module 1 / Lesson 1.6
Commit the API versioning decision before future endpoints multiply.
Module 1 / Checkpoint
Finish Phase 1 with tests, curl output, ADR-001, and a tag.
Module 2A / Lesson 2A.0
See why the database model comes before JPA entities.
Module 2A / Lesson 2A.1
Create the first Flyway migration for cinemas and screens before any JPA entity exists.
Module 2A / Lesson 2A.2
Model showtimes as booking facts with stored occupancy windows.
Module 2A / Lesson 2A.3
Enforce no overlapping showtimes per screen with a GiST exclusion constraint.
Module 2A / Lesson 2A.4
Add indexes for known reads and capture the planner story without forcing a fake win.
Module 2A / Checkpoint
Finish SQL-first by proving constraints, notes, time handling, ERD, seed data, and EXPLAIN artifacts exist together.
Module 2B / Lesson 2B.1
Map entities after the schema exists and prove Hibernate behavior in labeled tests.
Module 2C / Lesson 2C.1
Cause the N+1 problem on purpose, fix it three ways, and show where fetch joins become wrong.
Module 2C / Checkpoint
Finish the Hibernate and query-performance module with tests, transcripts, and article links.
Module 3 / Lesson 3.1
Open the Oracle lane and keep the no-overlap invariant true without Postgres-only features.
Module 4 / Lesson 4.1
Turn the tutorial API into a merge-ready boundary with validation, ProblemDetail, and architecture tests.
Module 5 / Lesson 5.1
Protect writes with a real resource-server filter chain while keeping public reads simple.
Module 5 / Checkpoint
Confirm Phases 0-5 form an application-ready backend story before observability and deployment.
Module 6 / Lesson 6.1
Add correlation IDs, structured logs, Prometheus metrics, and cache evidence that answer real debugging questions.
Module 7 / Lesson 7.1
Create the CI, image, profile, and runbook for an ARM-hosted read-only Palabas API demo.
Module 8 / Lesson 8.1
Map senior-backend interview claims to the exact commits, tests, ADRs, docs, and articles that prove them.
Module 8 / Checkpoint
Close M7 with observability, shipping, interview mapping, final articles, and a release/deploy evidence check.
Extras / Lesson S.1
Make the project Java version boring: one local JDK pin, one Gradle toolchain, and one CI provider.
A committed kata file with notes on records, Optional, streams, sealed switch, and virtual threads.
A wiring test, curl transcript, ADR-001, and a phase-1-done tag.
Constraints, EXPLAIN transcripts, schema notes, and time notes.
Educational tests with annotated SQL logs.
Broken and fixed query-count tests plus a stable paginated endpoint.
Concurrent overlap tests pass on both databases.
ArchUnit and error-path tests keep the API honest.
Five request outcomes are asserted through the real filter chain.
Two transcripts reconstruct failures and slow paths from telemetry alone.
Green CI, live Swagger, and v1.0.0 tag.
INTERVIEW.md points to concrete artifacts instead of claims.
Each supplement turns a real workflow failure into a repeatable project convention.