Big-O Was Never the Bottleneck. The Cache Line Was.
Two independent variables, two threads, zero shared state, and half the throughput gone. A short tour of why, in low-latency Java, the memory layout beats the algorithm.
Every piece I publish, newest first. They live on Medium, in The Converging Line; the RSS feed (opens in a new tab) brings each one as it comes out.
Two independent variables, two threads, zero shared state, and half the throughput gone. A short tour of why, in low-latency Java, the memory layout beats the algorithm.
A vendor cost guide told me the language was the moat. A CTO I deeply respect told me what it left out — and almost none of it is code.
The GIL is finally optional. Project Loom is stable. Here’s what concurrency actually looks like in both languages today. Real benchmarks and no religious wars.
Java has had a native interop story since 1.1. It was always broken. FFM API, finalized in Java 22, finally fixes it without a single line of C glue code.
From ticket creation to production deploy: one conversation, eight phases, zero context switching.
From custom DataDictionary to zero-reflection message dispatch — what the documentation doesn’t tell you about FIX connectivity in production.
Scaling that made things worse, self-healing that hid the real bug, and a deployment that was technically correct but left the system inconsistent. Three lessons from the field.