-
Core Java

Mutation testing with PIT: why 100% coverage proves almost nothing
PIT (also called Pitest) is the usual mutation testing tool for the JVM. It generates mutants for you, using a…
Read More » -
Core Java

LongAdder vs AtomicLong: Why a Single Counter Collapses Under Contention
A counter is the “hello world” of concurrent programming. Count requests, count cache hits, count bytes sent. One shared number,…
Read More » -
Software Development

What is an Agent Harness? Understanding the Architecture Behind AI Agents
Agentic AI systems are moving beyond simple question-and-answer applications. AI agents can reason about tasks, use external tools, inspect files,…
Read More » -
Software Development

Bloom Filters Explained: Understanding the Probabilistic Data Structure
Software applications often need to determine whether a particular piece of data exists before performing another operation. A database may…
Read More » -
Core Java

Flexible Constructor Bodies: Validating Before super()
Here’s a small confession. For years I wrote constructors that did their validation in the wrong place, and I knew…
Read More » -
Software Development

LSM Trees vs B-Trees: Write Amplification, With a Real Measurement
Every storage engine talk eventually reaches the same slide. B-trees are for reads, LSM trees are for writes, pick accordingly.…
Read More » -
Software Development

Datalog’s Resurgence Inside Modern Tooling: Where It Really Lives and Where It Only Rhymes
How a restricted logic language became the engine behind static analysis, and why your incremental build system is only a…
Read More »




