im·a·cto

jason@im·a·cto ~ % whoami

REV A · JASON WALDRIP · FRACTIONAL CTO / CAIO · DENVER · taking engagements →

I am a CTO. I hold the map the agents can't.

I've built and run engineering at consumer scale, first commit to the hard part, for founders drowning in AI-generated code and teams scaling past the leadership that got them here.

Volume is free now. Anyone can generate the code. The whole game is knowing which problem is move-fast and which one is load-bearing. That's the part I'm here for.

the_log// short, often, plain english

$06.12.26
  09:15
take

Teach the principle, not the patch

The hardest part of being a senior engineer isn't solving the hard problem. It's watching someone struggle toward it slower than you could, and keeping your hands in your pockets. Unblocking means pointing at the answer. Carrying means they need you again next time. At iTriage I learned the most durable thing a senior engineer ships is other engineers. The shortcut you hand them today is the context gap you own forever.

$06.09.26
  08:30
take

The context your agents don't have

An undocumented codebase has always been a tax on new hires. In the agent era it's a different problem. Agents don't go quiet when they hit a gap in context — they fill it. Confidently, and wrong. The architectural decision everyone knows because they were in the room? That doesn't exist to the fleet. They'll reverse it, build on top of it in ways that silently invalidate it. Write down why the system is the way it is. Not for the humans. For the context window.

$06.08.26
  08:15
take

Write it down. Not the what. The why.

Every decision your team made and never wrote down is a debt, payable by asking someone. Works until it doesn't: departures, six-month velocity gaps, agents that need context to not be dangerous. At Brandfolder, I knew why the zip pipeline was in Go. That knowledge survived because the people did. Decision records aren't documentation theater. They're the context a fleet can reason over, and the resilience that outlasts the team that built it.

$06.07.26
  09:30
take

A monorepo is a context boundary

The debate used to be tooling overhead and org preferences. Those tradeoffs are real. But there's a second argument now that flips the calculus. When a fleet of agents has to reason over a change, can they see the whole system? Split repos mean split context: a fix in service A that quietly breaks service B goes undetected because nothing is looking at both. One repo isn't a preference. It's the context boundary the whole system needs, for humans and agents both.

$06.04.26
  16:20

Release on Demand

A release schedule is what you build when you don't trust your releases. The fix isn't a longer freeze or a bigger window. It's making every green commit shippable and every miss recoverable before anyone notices.

releases
$06.02.26
  08:47
take

Just use Postgres

Two engineers, a new project, and the architecture already has Redis, a queue, and Elasticsearch before a single user signs up. Postgres does all three. Not forever, but right now at your actual load. At Brandfolder we added Go when Ruby was genuinely hurting us on heavy IO. Not before. Earn the complexity. Wait until the first tool is actually failing you.

© 2026 — written by a human, with help, and said so canonical jasonwaldrip.com · delivered through The Bushido Collective