This blog is where I work out, in public, what it actually takes to ship AI systems that don't betray the people relying on them. The focus is narrow on purpose: agentic systems, prompt injection, MCP and tool-use security, OAuth in the LLM era, and the engineering patterns that keep autonomous code safe enough to delegate real work to.

Posts lean toward concrete trade-offs and reproducible findings rather than threat-of-the-week commentary. You'll find research write-ups with code where the experiment is reproducible, infrastructure deep-dives where I walk through a design and what I'd change in hindsight, and field notes from running real defenses against real attacks. Use the category filter below to narrow in on a specific thread — or browse chronologically if you want the full arc. New writing usually lands every few weeks, and you can subscribe at the bottom of the page if you'd like it in your inbox rather than chasing the RSS feed.