Journal
2026
- A database rollout on a test environment
I rolled several pending migrations onto a non-production Cloudflare D1 database, with exports, verification and a restore drill around the risky parts.
- Running a fleet of AI agents
What worked, what failed, and what I changed while coordinating AI agents across two projects.
- Support, share and post layouts
I rebuilt the blog’s support cards, sharing controls and post layout around safer copying, progressive enhancement and measured dimensions.
- Borders and the brand look
A green build shipped the wrong visual treatment. Fixing it meant checking the render myself, limiting where frames belong, and testing the viewport I actually use.
- Collectors and credential handling
A collector audit exposed why credential names cannot be treated as configuration. I standardized the boundary across sources and simplified the CI wrapper that feeds them.
- A threat model for a static site
A static Hugo site still has a publishing pipeline, credentials, third parties, and readers to protect. I put those risks into an OWASP Threat Dragon model and made CI keep the model tied to controls that actually exist.
- Privacy engineering for analytics
I built analytics reporting around privacy floors, fixed release periods, and an append-only ledger. Security review kept finding ways that individually safe reports could reveal more when compared.