Writing
Field notes from infrastructure, identity, automation, and the occasional AI experiment. Written the way I'd explain it to another engineer, failures included.
The Uptime Monitor That Was Down for 27 Days
A disk-full cleanup most likely deleted my self-hosted monitor's database, and nothing noticed for almost a month. The fixes: treat 'unused' storage as precious, verify stored external IDs before trusting them, and make sure something watches the watcher.
Auto-Tagging a Photo Library When a Wrong Tag Costs More Than a Missing One
Zero-shot image models make tagging thousands of photos cheap, but the hard part is deciding when a tag is safe to apply unreviewed. Per-tag thresholds, negative descriptions, a spot-check gate, and small classifiers trained on those checks got me there.
Building Agent-Ready Surfaces for Information
How to structure a page, doc set, or API so AI agents can actually find, parse, and correctly cite what you publish — and why that's a different job than SEO.
Using Agents to Operate Self-Made Platforms
Notes from letting Claude Code and similar agents run the systems I've built, not just write their code — where that works, where it breaks, and what it takes to make a platform safe to operate this way.
Data Talks: Let Your Data Do the Decision Making
A practitioner's case for building decisions around instrumented, observable data instead of gut checks — plus the honest limits of that approach, like Goodhart's law and survivorship bias.
How to Design a System Based on Operational Efficiency
A practitioner's guide to designing pipelines, internal tools, and automation around minimizing ongoing operational burden — not just shipping fast or adding features.
Designing Systems for Use by Agents and Humans
APIs and internal tools now have two categories of caller with opposite needs. Serving both well is a design discipline, not an afterthought — here's what that looks like in practice.
How Google's OAuth Consent Screen Actually Works
A practitioner's walkthrough of Google's OAuth verification tiers, scope categories, and the pitfalls (100-user caps, CASA audits, brand verification) that trip up anyone wiring an app into Gmail, Calendar, or Drive.
Hostinger, evaluated for developers
Hostinger is a genuinely good deal for shared hosting and simple VPS use — as long as you know what you're trading away to get the price, and you don't get surprised at renewal.
How to Know a System Is Actually Ready
Running and correct aren't the same as ready. A practical checklist for the gap between a demo that works and a system you can trust with real use.
Pitfalls of AI System Design in Complex Systems
Where LLM pipelines, agent chains, and RAG systems actually break as complexity grows — silent failures, prompt drift, compounding cost and latency, and the temptation to reach for a model when deterministic code would do.
Quo: OpenPhone's Rebrand Into an AI-First Business Phone System
OpenPhone became Quo in late 2025 with $105M in new funding and an AI answering agent bolted onto the same VoIP core. The phone system underneath is still solid; the AI layer is the part worth pressure-testing before you rely on it.
Rules for Interaction Systems in the Age of AI Agent Use
As agents replace humans as a website's primary client, the interfaces that used to win on persuasion and polish now need to win on predictability and machine-readable structure instead.
SEO in 2026: How AI Visibility Is Changing How Websites Look
Being ranked and being cited are now different jobs with different requirements — and that split is starting to show up in how pages are actually built, not just how they're marketed.
Upwork Scams and How to Stay Safe
A practical rundown of the scam patterns that actually show up on Upwork — off-platform payment requests, fake checks, unpaid test projects, phishing — and the concrete habits that keep them from costing you money.