Java

[EN] Spring Boot meets AI: How to build your own MCP server with Java
[EN] Spring Boot meets …

When we currently talk about the Model Context Protocol (MCP), TypeScript or Python usually dominates the timeline.

[EN] Unit tests for your architecture? Introduction to ArchUnit
[EN] Unit tests for your …

Hello everyone, I actually thought the whole time I had already written an article about this.

[EN] Never 'Works on my Machine' again: database testing done right
[EN] Never 'Works on my …

“But locally everything went green!” We all know this pain: your pipeline is green, your tests run locally in milliseconds.

[EN] CQRS Pattern explains: Why CRUD is not enough in microservices
[EN] CQRS Pattern …

Do you know that? You start a new project with a clean domain model.

[EN] Spring Boot 4 & Resilience4j: Error handling can be so elegant
[EN] Spring Boot 4 & …

The year is 2025. Spring Boot 4 is here, and we no longer use deprecated RestTemplate calls.

[EN] Microservices Resilience: The Circuit Breaker Pattern with Spring Boot & Resilience4j
[EN] Microservices …

Imagine our SAGA Orchestrator (Saga Pattern Part 3) running at full speed.

[EN] Goodbye, version chaos: A practical guide to SDKMAN for Java developers
[EN] Goodbye, version …

Do you know that too? You are working on Project A, which is still running on Java 11 LTS, while at the same time you are developing a new feature for Project B, which is already based on the current Java 21.

[EN] Collections hacks: 10 tricks that will instantly turn you into a Java pro
[EN] Collections hacks: …

If you’ve been programming Java for a while, you probably use List, Set, and Map every day.

[EN] `@EventListener` in Spring Boot: How to build loosely coupled components
[EN] `@EventListener` in …

Hello everyone, In modern, microservices-oriented architectures, we want to keep components as independent as possible.

[EN] Why senior engineers almost never write `!= null`
[EN] Why senior engineers …

Hello everyone, If you’ve been around the Java world for a while, you know the picture: your code is littered with defensive queries like: