Writing

This blog is my attempt to more regularly publish some writing. It's very informal. Sometimes long stories or cases; sometimes it's what I'd send you if you were to ask me what's on my mind this week in an email - and obviously too long for a tweet.

CRA·

CRA Isn't New. OT Just Wasn't Listening.

The EU Cyber Resilience Act is panicking the OT world. Mission-critical software has shipped under stricter rules for thirty years. The standards aren't the problem. The architecture is.

CRACybersecurityOT
AI Agents·

Code Got Cheap. The Hard Part Didn't.

Coding agents made writing code fast. They did not make software fast. The bottleneck just moved.

AI AgentsCoding AgentsSoftware Engineering
Spec-Driven Development·

Spec-Driven Development, but the Specs Are a Graph

A 12-lesson course that rebuilds the DeepLearning.AI spec-driven development tutorial on Rust + sphinx-needs — and the AgentClinic domain you build to learn it.

Spec-Driven DevelopmentSphinx-NeedsPharaoh
AI Agents·

The 6x Tax You're Paying Without Knowing It

Why unstructured AI coding burns your budget and still delivers incomplete results — and what a queryable traceability graph changes about that.

AI AgentsClaude CodeSphinx-Needs
TwinCAT·

Adsify: Why I Put a REST API in Front of TwinCAT ADS

Every team that needs PLC data writes its own bridge. Adsify is the one I got tired of rewriting.

TwinCATADSREST API
Sphinx-Needs·

Company as Code: You Don't Need a New DSL

Sphinx-needs already provides the primitives for encoding company structure, policies, and compliance as code. You just haven't pointed it at that domain yet.

Sphinx-NeedsCompany-as-CodeCompliance
Performance·

iceoryx2 C# vs .NET IPC: The Numbers

Benchmarking zero-copy IPC against Channels and Named Pipes

PerformanceIPC.NET