Writing on AI-augmented development, developer tools, and building in public.

Thoughts on building with AI agents, serverless architecture, and the tools I'm creating along the way.

A Wraps plugin for better-auth: auth email through your own SES

One plugin, two opt-in halves — transactional auth emails sent through your own AWS SES account, and signups synced to contacts with consent-safe defaults. Plus the hook that catches OAuth signups the obvious approach misses.

wraps-email for Python: SES with the DX of a vendor SDK

A typed Python SDK for AWS SES built on httpx and botocore signing — no boto3. Attachments, batch sends, SES templates, and suppression, with the same credential resolution as the JS SDK.

better-inbox: in-app notifications that live in your database

A better-auth plugin for in-app notifications. One plugin, one migration, one component — notifications live in your database, addressed to your users, with org-aware fan-out. No SaaS, no services to deploy.

How I Build Features with Agent Swarms and TDD

How I build features with 4 parallel research agents, TDD-driven implementation, and adversarial code review — all orchestrated by a single skill.

Baseline: enforce team decisions AI keeps ignoring

A Rust CLI that catches when AI coding tools violate your team's conventions — banned patterns, deprecated imports, ratcheting legacy code, and Tailwind dark mode enforcement.