Kotlin + Spring Boot (with Gradle)
🍃 Learn Spring Boot and Gradle by building, not memorising. Five chapters: (1) Gradle — the build as a task graph, dependencies, configurations, the lifecycle, plugins; (2) Spring core — Inversion of Control, dependency injection, beans, `@Configuration`/`@Bean`, `@Value`, profiles, lifecycle; (3) Spring web — `@RestController`, `@GetMapping`/`@PostMapping`, path variables, request bodies, services, validation, exception handling; (4) data — repositories, the in-memory CrudRepository, persistence patterns; (5) testing & production — slice-style tests, configuration properties, actuator concepts. Spring challenges embed a faithful hand-rolled **mini-Spring runtime** (a reflection-based DI container + REST router + CrudRepository) so the `@Service`/`@RestController`/`@Bean` code you write genuinely wires and runs — graded by stdin/stdout on a self-hosted Kotlin 1.8.20 runner. Gradle challenges model the real build (task graphs, dependency resolution) in plain Kotlin.