javaperformance
Java Performance: Stop Guessing, Start Measuring

Most Java performance work starts in the wrong place. An engineer identifies “the application is slow,” …

23 Jun 2025 Read →
javaconcurrency
Structured Concurrency in Java: Fixing Unstructured Concurrent Code

Java’s concurrency model has been functional for decades. ExecutorService, Future, CompletableFuture — these tools …

28 Apr 2025 Read →
javarecords
Records and Sealed Classes: Better Domain Models in Java

Java domain modeling has historically been verbose and error-prone. Entity classes with dozens of getter/setter pairs, …

27 Jan 2025 Read →
javapattern-matching
Pattern Matching in Modern Java: Records, Switch, and Exhaustiveness

Pattern matching in Java 21 is the culmination of several interconnected features: instanceof patterns (Java 16), sealed …

20 Jan 2025 Read →
javajava-21
Java 17 to 21: Modern Java Is a Different Language

Java 21 is the current long-term support release as of late 2024, and it represents something unusual: a Java that looks …

16 Dec 2024 Read →
javavirtual-threads
Virtual Threads in Java 21: What They Solve and What They Don't

Virtual threads were the most anticipated Java feature in years. Project Loom’s promise was simple: write blocking …

4 Nov 2024 Read →
javamodern-java
Java 9 to 17: The Language Features You Should Actually Be Using

Java 8 was a turning point. Lambdas and streams changed the language substantially. Then came a long stretch where each …

7 Oct 2024 Read →