Skip to content

~/blog

Writing about infrastructure, software supply chain security, and what happens when you remove too much friction from engineering.

ai ai-agents architecture astro cognitive-load decision-making engineering-management leadership platform-engineering principles python resilience security software-engineering tailwind threat-modeling webdev writing
2026-07-10 - 9 min read

Context, Not Control

When I first led a team, I made every decision run through me. A manager set me straight: my job was never to make the decisions, it was to make sure decisions got made.

leadership engineering-management decision-making software-engineering
2026-07-09 - 10 min read

Cognitive Bandwidth Is the Constraint

Developer productivity isn't limited by effort or typing speed. It's limited by how much an engineer can hold in their head at once, and protecting that is most of the job.

leadership platform-engineering cognitive-load software-engineering
2026-06-29 - 9 min read

Platform Engineering for Human Beings

The job of a technical leader isn't to make every decision. It's to build the systems that let good engineering happen without them in the room.

leadership platform-engineering engineering-management software-engineering
2026-05-11 - 11 min read

In Praise of Inefficiency

Resilient systems need inefficiency built in. Seedlings, deadlifts, and what happens to engineers who never learn to struggle.

ai software-engineering security resilience
2026-04-15 - 11 min read

The Centaur Model: Why the Best AI Work Is Still Partnership

The best use of AI isn't vibe coding or refusing the tool. It's pair programming in the deepest sense, where both parties bring something the other can't.

ai software-engineering writing
2026-04-06 - 9 min read

Threat Modeling for Software Developers

Security has a baseline that everyone should meet. Above that, the right level of security depends on your threat model, and that's a business decision, not a technical one.

security threat-modeling ai-agents architecture
2026-03-26 - 8 min read

DRY Doesn't Mean What You Think It Means

Most developers learn DRY as 'don't duplicate code.' The original principle is about something deeper: every piece of knowledge should have a single source of truth.

software-engineering principles python
2026-03-24 - 6 min read

Rebuilding My Site with Astro, Tailwind, and DaisyUI

Why I ditched Hugo after years and rebuilt my personal site from scratch with Astro, Tailwind CSS v4, and DaisyUI v5.

astro tailwind webdev