Actionable insights in daily software development


Twenty years in, still learning - writing down what sticks.

The single repo that refuses to split

Still trying


Build the constraint, not the check

Make the wrong thing hard to produce


Gate before you polish

Structure first, surface later


Consolidating server operations with Ansible in Docker

One inventory, one truth


When the same pattern appears twice

The second instance is the proof


From multiple page types to one universal model

Configuration, not type


Replacing pip-tools and tox with uv

The glue was the cost


Schema-baked read models with SQLite generated columns

The projection you don't build