Writing

Writing.

Notes on product systems, the reality of applied AI, and how state shapes software.

#SystemsComplexityAug 25, 20266 min read

When the Measurement Is the Bug

Evaluating a candidate system against one already in production, the hard part was never the thing being measured. It was three numbers that looked healthy and described a different experiment than the one intended.

Read more →
#AIRealityJun 20, 20266 min read

Human-in-the-Loop Isn't Going Away

When an AI system is accurate enough for the demo but you still can't remove the person, the missing piece isn't the model — it's who carries the cost of being wrong, and whether the system routes by that cost.

Read more →
#FrontendSystemsJun 18, 20265 min read

When to Extract a Shared Component

Extraction is a bet that a shape is stable — not a rule about counting to three. The third copy just happens to be where you finally have enough evidence to judge.

Read more →
#FrontendSystemsJun 16, 20266 min read

One Component Library, Three Applications

What changes when three apps depend on the same components, and why the components turn out to be the easy part.

Read more →
#SystemsComplexityJun 14, 20266 min read

Making Change Cheap

The most expensive part of software is changing it after it ships. What that costs teams, and how good systems keep each next change small.

Read more →
#ProductSystemsJun 12, 20267 min read

Every System Eventually Wants to Become Configurable

Why configuration eventually replaces code, and the cases where reaching for it makes things worse.

Read more →
#FrontendSystemsJun 9, 20266 min read

Serving Many Brands from One Codebase

Serving many brands from one codebase without forking. The hard part is deciding where configuration ends, not picking a theme.

Read more →
#SystemsComplexityJun 7, 20265 min read

The Hidden Cost of Exceptions

A single special case is cheap. The tenth is what quietly makes a system unmaintainable, and the bill stays invisible until it isn't.

Read more →
#AIRealityJun 5, 20266 min read

The problem is almost never the model

When a computer-vision system underperforms, the fix is usually in the data, not the model.

Read more →
#BackendSystemsJun 2, 20265 min read

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 →
#SystemsComplexityMay 29, 20266 min read

Why "Just Add a Flag" Eventually Fails

A feature flag is a great way to defer a decision and a bad way to avoid one forever. Flag sprawl is usually a missing model in disguise.

Read more →
#ProductSystemsMay 22, 20266 min read

Schema-Driven Forms: When Rules Become Data

Business rules scattered through components age badly. How schema-driven forms move them into data and open the door to configuration.

Read more →
#SystemsStateMay 19, 20265 min read

Why AI assistants forget decisions

It looks like an AI problem. It's really a state-management problem on a new surface: a single source of truth, records over logs.

Read more →
#AIRealityMay 15, 20265 min read

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 →