Thinking out loud.
Notes on product systems, the reality of applied AI, and how state shapes software. Each one doubles as a record of how I approach a problem.
One Component Library, Three Applications
What changes when three apps depend on the same components — and why the components are the easy part.
Read more →Making Change Cheap
The thread through everything I build: the expensive part of software isn't writing it, it's changing it — and good systems make the next change smaller than the last.
Read more →Every System Eventually Wants to Become Configurable
Why configuration eventually replaces code — and when not to reach for it.
Read more →Serving Many Brands from One Codebase
How to serve many products or brands from a single codebase without forking — and why the real work is a boundary, not a theme.
Read more →The Hidden Cost of Exceptions
A single special case is cheap. The tenth one is what quietly makes a system unmaintainable — and why the cost is invisible until it isn't.
Read more →The problem is almost never the model
When a computer-vision system underperforms, the fix is usually in the data — not the architecture.
Read more →Measuring Latency Honestly
Why averages flatter the truth, what percentiles fix, and how to keep a fast metric from quietly becoming a wrong one.
Read more →Why "Just Add a Flag" Eventually Fails
A feature flag is a great way to defer a decision and a terrible way to avoid one forever — and how flag sprawl is usually a missing model in disguise.
Read more →Schema-Driven Forms: When Rules Become Data
Why business rules belong in data rather than scattered through components — and how schema-driven forms become the first step toward a configurable system.
Read more →Why AI assistants forget decisions
It looks like an AI problem. It's really a state-management problem on a new surface — single source of truth, records over logs.
Read more →What Computer Vision Taught Me About Software Engineering
Lessons from applied computer vision that turned out to be lessons about software in general.
Read more →