News
Java’s Growing Graveyard: The Old APIs Being Buried—and What Replaced Them
The Java “tomb” is filling up. Here’s what’s being buried—and what you should use instead.
How to Accidentally Build a Programming Language While Cleaning Redis
A “simple” Redis cleanup task evolved into a full rule engine. Configurable JSON rules grew to support logic, recursion, traversal...
The AI-Everywhere Architecture: Building Services That Collaborate With LLMs
Building AI-Everywhere Architecture requires moving beyond simple API calls to a robust, layered system. The core design involves...
Code Review Anti-Patterns: How to Stop Nitpicking Syntax and Start Improving Arc...
Code reviews are expensive. If your team is spending valuable senior engineering hours arguing about semicolon placement or variab...
Rule Engine + LLM Hybrid Architectures for Safer Code Generation
AI-generated code is fast but notoriously unreliable, prone to hallucinations and security risks. This article proposes a hybrid a...
Multi-Threading in Spring Boot with ExecutorService & CompletableFuture
Most beginners understand “threads”, but they struggle to visualize how multithreading works in Spring Boot.
10 Essential Java Libraries - How Essential Are They Really?
I recently read and shared You’re Wasting Time in Java Without These 10 Libraries. I think a full-blown post is in order. The refe...
Everything You Need to Know About XML Schema Validation 1.1 in Java
The Java JDK uses a wrapped Xerces implementation for parsing. The implementation is stuck on XSD validation 1.1, which is not sup...
Testing the Untestable: A Simple Way to Handle Static Methods in Legacy Java
This is a pretty straightforward way to test untestable code.
Rethinking Encapsulation: From Private to Public by Design
Access modifiers have long been seen as essential to safe and clean code. But they’re ultimately a low-level mechanism for express...
Transitive Dependency Version Resolution in Rust and Java: Comparing the Two
You learn by comparing to what you already know. I was recently bitten by assuming Rust worked as Java regarding transitive depend...
