Java

Java is my primary language for backend services. Mature ecosystem, strong tooling, and frameworks like Spring Boot and Quarkus make it productive for building production-grade APIs and microservices.

Tooling

IDE: IntelliJ IDEA — the standard for Java development. Excellent refactoring, code analysis, and framework support (Spring, Quarkus, Jakarta EE). The free Community edition covers most needs; Ultimate adds Spring-specific tooling and database tools.

Build: Gradle or Maven — Gradle is the least bad option; keep the build file focused on compile, test, and package only. See Build Systems for the full take.

Frameworks

Spring Boot — the dominant choice for enterprise Java. Convention over configuration, huge ecosystem, production-ready out of the box.

Quarkus — optimized for containers and GraalVM native compilation. Noticeably faster startup and lower memory footprint than Spring Boot. Worth considering for microservices running in Kubernetes.

Testing with JUnit

JUnit 5 is the standard testing framework. Combine with Mockito for mocking and AssertJ for readable assertions.

@Test
void shouldReturnGreeting() {
    var service = new GreetingService();
    assertThat(service.greet("Manfred")).isEqualTo("Hello, Manfred");
}

Spring Boot’s @SpringBootTest and @WebMvcTest slice annotations make integration testing straightforward without spinning up a full application context.

Resources

Built with Hugo
Theme Stack designed by Jimmy