Writing on developer productivity, software architecture, and engineering leadership.

Practical lessons on improving delivery flow, building quality into the software-development lifecycle, and using AI without making engineering less predictable.

TDD with AI: Supervising Agents Through Tests

How test-driven development becomes even more powerful when AI agents write the code — tests as contracts, specifications, and the primary communication channel.

Tests as PR Documentation

Why the first thing I look at in any pull request is the tests — and how treating diffs as a communication medium makes code review faster and more effective.

The Behavior-First Mindset

How shifting from code-first to behavior-first thinking transforms testing, TDD, and API design — and why it matters more than ever with AI agents writing code.

Tests as Living Documentation

How well-written tests serve as executable specifications that document what your code does, for whom, and why — and stay in sync automatically.

Testing at the Layer of Behavior

Why testing every class creates fragile tests, and how testing at the behavior layer reduces test count while increasing confidence.

Open-Water Swim

The story about how the PGA Tour led to my first open-water swim

Hello World

Initial commit; Initialize the blog with the first post. Introduce myself and explain what the blog is about