Day 100: What 100 Days of Java Actually Changed in How I Think About Software

This challenge started as a way to learn more Java. Over time, it became a way to follow confusion down to memory, coordination, performance, and failure modes.

March 30, 2026 · 9 min

Day 99: Virtual Threads Didn't Kill Event Loops. Here's How Each Works

I thought virtual threads replaced the need for Netty and event loops. Then I built both models from scratch and benchmarked them. Virtual threads didn’t kill event loops they made blocking I/O viable for most cases. But event loops still win for ultra-high connection counts. Here’s when each approach wins.

February 13, 2026 · 20 min

Why Your Parallel Streams were Leaving CPU Cores Idle (And How to Fix It)

Parallel streams gave me 60% CPU utilization on 8 cores. I thought that was good. Then I discovered why the default spliterator creates massive load imbalance, and how a 50-line custom implementation cut processing time by 40%.

December 24, 2025 · 18 min

Day 98: I Thought Virtual Threads Were Just Green Threads They're Actually Continuations on the Heap

I thought virtual threads were just green threads—turns out they’re continuations on the heap with sophisticated scheduling. Here’s what I got wrong and what actually happens under the hood.

December 23, 2025 · 9 min

Day 97: Java Concurrency Toolkit Part 3 - Advanced Patterns & Production Readiness

Part 3: Advanced Patterns & Production Readiness - Deep dive into 3 advanced tools plus debugging, monitoring, and going to production

December 22, 2025 · 26 min