Journal
Building in public. One real update at a time.
Not a blog. Just what happened, when it happened.
2026-04-17
The rule that checks the rules
Every layer in the system has a check. Financial outputs have cross-validation gates. Code has tests. Assumption changes have four-eyes review. The one thing without a check was the AI's own work. I fixed that today.
2026-04-15
The 52nd edge case
I spent a day writing down every edge case I could name for the FP&A OS product. I got to 52. That's not the end — it's the ones I could see from where I'm standing. Here's why I think that's the right place to start.
2026-04-14
The controls you don't see
A security audit of the invite gate found five real vulnerabilities — two of them critical. Here's what I found, what I fixed, and why it matters that I looked.
2026-04-13
A control that should have been there from the start
Moved a critical calculation layer server-side. The kind of change nobody sees — which is the point.
2026-04-13
121 tests before a single button
I built a delivery margin engine for professional services teams. The calculation engine came first. The interface came last. Here's why that order matters more than it sounds.
2026-04-12
Launch day
I didn't plan for today to be the day. It just became the day.
2026-04-12
Built for one person
A friend runs a cleaning business. Two cleaners, a dozen clients, no visibility into whether it's actually profitable. I fixed that in a day.