Build. Learn. Write.
Technical articles, working notes, and lessons from building software.
Our Background Jobs Exhausted the Database Pool. Then the API Stopped Working.
How shared database connections turned grade recalculations into an API outage, and what bounded execution fixed.
Read →

Why Our Next.js Deployments Took 30 Minutes
How a 9.48 GB Next.js image became part of an 18–30 minute deployment path, why the shared image was optimized without redesigning tenant workflows, and what changed after rollout.

What Duplicate Users Taught Me About Outbox and Idempotency
A production support incident led me to separate durable work from duplicate-safe processing with an outbox, an inbox, and idempotency.

How Java's Concurrency APIs Fit Together
A beginner-friendly map of Java concurrency APIs organized by the problems they solve.