Writing
Occasional pieces on architecture decisions, delivery economics, and directing AI in real work. No newsletter.
One policy, two compilers
An export-control policy has to hold on Unity Catalog and on Fabric at the same time, and nobody keeps two admin consoles in sync by hand. So the policy is data, and two compilers turn it into what each platform can enforce. 22 ABAC policies and tags that carry their own provenance on one side, 20 static roles and four tenant settings on the other. The gap between the two only became visible because it was generated.
Deciding who may see what, and from where
Export control does something to a lakehouse that GDPR never did. The same row gets three different answers depending on who asks, from where, and what it was derived from. Six decisions for a data platform under export control, one policy compiled to both Unity Catalog and Fabric, and the two findings that mattered most. The border is not the region, and classification is not a property of a table.
Deciding where a Synapse estate goes
Synapse has an end date, so the question is no longer whether to move but where each workload lands. Fabric, Databricks or Snowflake. Ten ordered rules, a cost model that treats a pre-paid capacity as the step function it is, and the finding that surprised me most. The platform that priced best was eliminated from almost every workload it priced best on.
Who had to say yes
Every architecture has a list of people who can quietly refuse it. The teams, the functions, the budget holders. Most designs never write that list down, and I think that is why so many correct architectures never ship. A way of designing for adoption instead of hoping for it.
Deciding what crosses the SAP↔Snowflake seam
For every object in a SAP estate, one question sets the cost and the freshness of everything downstream. Share it zero-copy, replicate it, federate it, split it, or keep it in SAP. Here is a reference architecture that answers it per object, with nine ordered rules, a cost model with the crossover frequency, and a local simulation that runs all three modes.
Synthetic users you're allowed to test with — Nemotron-Personas
NVIDIA's Nemotron-Personas gives you a million fictional-but-grounded people to seed test harnesses and ML experiments with. No real PII, no DPIA. Where it earns its keep, the regulatory angle for EU teams, and the caveats that bite if you forget they're synthetic.
How I get non-technical POs writing specs agents can execute
The difference between a lazy prompt and a spec that directs an agent, and why a product owner who can write the second is a force multiplier for the whole team.
Why ask IT when you can do it yourself?
The skill gap between a business analyst and a junior developer has collapsed, and the ticket queue is losing its reason to exist. The IT organisations that come out ahead stop being the factory and become the platform.
The case for one-engineer economics
Five numbers changed what a small team can build. AI adoption, the 280-fold collapse in inference cost, the rise of the solo founder, and a sharp fall in programmer employment. Here is what they add up to, and the part they leave out.