Writing
Notes from the work
Mostly the decisions and trade-offs behind whatever system I'm currently building, documented close to when I made them.
Why I Write the Blueprint Before I Write the Code
On three unrelated projects this year, the highest-leverage work happened before the first line of implementation. That's not a coincidence — it's the point.
Inertia v3's <Form> Component Fixed Bugs I'd Stopped Noticing
A declarative form component sounds like a minor API addition until you count how many multi-step wizard bugs were actually state-synchronization bugs in disguise.
What 'AI Agent' Actually Means Once You're Shipping One
Multi-channel bot delivery, versioned edit history, and a state machine underneath the chat UI — what changes when an AI feature has to be a product, not a demo.
Designing Auth for a Market Where Phone Number Beats Email
Most auth libraries assume email-first sign-up by default. Building CowriterAI's onboarding meant treating phone number as the primary identity instead — and what that changes.
Money Math in PHP: Why BCMath Belongs in Your Ledger, Not Floats
Floating-point drift is invisible in a demo and expensive in production. Notes from building a settlement engine on BCMath-safe arithmetic and optimistic locking.