Java
-

Understanding Garbage Collection Pauses: Why Stop-the-World Still Happens and What the JVM Is Actually Doing
A conceptual guide to safepoints, GC roots, and why even modern collectors like ZGC and Shenandoah cannot always avoid pausing…
Read More » -

Markdown Rendering with commonmark-java
Markdown has become the de facto standard for writing documentation, technical blogs, README files, knowledge bases, and collaborative content. While…
Read More » -

Spring Modulith 2.0: Enforcing Module Boundaries Before Microservices
Most Java teams hit a wall sooner or later. The monolith that felt manageable at launch gradually turns into a…
Read More » -

The Java Memory Model Explained: Happens-Before and Concurrency Semantics
There is a quiet assumption embedded in almost every line of Java ever written: that when one thread writes a…
Read More » -

Stop Using Virtual Threads for Everything: Performance Lessons Learned
When JEP 444 landed in Java 21 in September 2023, the reaction across the Java community was unusually enthusiastic. Virtual threads promised…
Read More » -

Kafka Without ZooKeeper (KRaft): What Java Developers Actually Need to Reconfigure
For over a decade, running Apache Kafka in production meant running two distributed systems simultaneously. Kafka handled message streaming; ZooKeeper…
Read More » -

Project Panama FFM API: Calling C Code Without JNI Hell
Java has always needed a way to call native code. Scientific computing, image processing, hardware drivers, cryptography libraries — the…
Read More » -

JSpecify + Spring Boot 4: Finally Fixing Java’s Billion-Dollar Mistake
Tony Hoare introduced the null reference in 1965 and later called it his “billion-dollar mistake.” For Java developers, the pain has been…
Read More » -

Stop Blindly Trusting AI: Java Pitfalls I Discovered in 2026
By 2026, AI coding assistants have become as routine in a Java developer’s workflow as Stack Overflow once was. Stack Overflow’s…
Read More »




