series

Most of what I write comes in series. Start at the beginning and read them in order.

Who Decided That?

Data piles up, agents pick tables by their name, and nobody remembers deciding any of it.

In progress · 3 of 10 parts published

Start reading →
  • Prologue The Reader Changed October 13, 2026 · I closed Trust Erosion saying the fix is a better reader. Then the reader changed: now it's an AI agent, and it doesn't ask questions.
  • Part 1 The ROT Weighs October 22, 2026 · Redundant, obsolete and trivial data has mass. The cloud keeps it, and nobody decided to.
  • Part 2 The Agent Chooses October 28, 2026 · For an agent, every table is one step away. Only the name is left to choose by. Who decided which tables it sees?
  • Part 3 Written for Someone Else November 5, 2026 · Eighty-two measure descriptions, all written by an agent, all approved. Most said nothing. Who were they written for?
  • Part 4 Coming soon. Subscribe to get it by email.

The Trust Erosion Series

Every number in this series was correct. None of them earned the room's trust.

Complete · 10 parts

Start reading →
  • Part 1 False Semantic Consensus July 15, 2026 · Everyone agreed on the number. That was the problem.
  • Part 2 The Table Is Not the Concept August 6, 2026 · You can define the concept perfectly and still model it wrong.
  • Part 3 Your Glossary Isn't Semantics August 12, 2026 · A definition tells you what a customer is. It doesn't tell you which rows qualify.
  • Part 4 When Aggregation Lies August 18, 2026 · The general manager wanted his quantity column. The model kept returning a blank. The thirty minutes that followed were not about the formula.
  • Part 5 The Number Without Perimeter August 27, 2026 · +12%. Correct to the decimal. Nobody in the room could defend it.
  • Part 6 The Metric as Mirror, Not Window September 1, 2026 · The number said the ER was excellent. Sitting in that waiting room, it told me nothing I needed to know.
  • Part 7 Goodhart's Law in Practice September 9, 2026 · He won awards for the number. The number was the problem.
  • Part 8 When Obedience Is the Disaster September 14, 2026 · Nobody gamed the number. They obeyed it perfectly. That was the disaster.
  • Part 9 When Code Betrays the Model September 22, 2026 · The definition was right. The code said something else -- and nobody was reading the code.
  • Part 10 The Discipline of Distrust September 29, 2026 · Every number in this series lied. The fix was never a better number -- it was a better reader.
  • Epilogue The Reader Changed October 13, 2026 · I closed Trust Erosion saying the fix is a better reader. Then the reader changed: now it's an AI agent, and it doesn't ask questions.

YAML Metadata-Driven Ingestion

A Bronze layer that disappears behind a YAML commit, and what production taught us about it.

Complete · 6 parts

Start reading →
  • Part 1 Bronze Should Be Boring April 16, 2026 · Designing a metadata-driven ingestion layer that disappears behind a YAML commit
  • Part 2 Metadata All the Way Down April 18, 2026 · Governing your ingestion metadata with more metadata -- and knowing which metadata is which
  • Part 3 The Scheduler's Contract April 23, 2026 · How scheduling becomes infrastructure -- data freshness as a promise, not a hope
  • Part 4 Battle Scars April 25, 2026 · What happens when a YAML-driven platform meets production reality
  • Part 5 Runbooks as Infrastructure May 2, 2026 · The 3am test, and why the instruction for a human is engineering, not documentation
  • Part 6 We Act on Metadata May 4, 2026 · How a boring ingestion layer becomes the foundation for ops, quality, and governance -- without a separate catalog project