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

$07.01.26
  08:40
take

Own the model

Point a task at a frontier API and you've made two decisions: rent the intelligence, hand your data to someone else's server. Sometimes that's right. Often you reached for the biggest model because it was there, not because the job needed it. Classification, extraction, routing don't need frontier reasoning. An open-weight model you run yourself does them cheaper and keeps the data in the building, and Qwen and DeepSeek are closing the gap fast. Save the frontier for the problems that actually earn it.

$06.30.26
  09:10
take

Concurrency isn't a feature you add

A real-time marketplace is a concurrency problem wearing a product costume. You can bolt fault-tolerance onto the wrong runtime, supervisors you hand-wrote and queues you babysit, or you can pick one where process isolation is the floor and not the upgrade. At GigSmart I reached for Elixir for exactly that. One slow request shouldn't take down the ones next to it, and on the BEAM it doesn't, by default. Reach for it when concurrency is the product. When it isn't, the runtime is a tax you didn't need. Earn it.

$06.28.26
  08:25

Read the Decisions, Not the Diff

Vibe coding is only dangerous if you don't question the output. But questioning was never reading every line, not even with humans. It's understanding the decisions the agent made and checking its finished design against the spec you handed it. The new trap: when a person makes that call, you can ask them in six months. When an agent makes it, the reasoning lives in a log that scrolls off. Holding the map on a system you architected but didn't implement isn't a new crisis. It's the oldest part of being a CTO.

judgment
$06.27.26
  08:50
take

When the client owns the shape

GraphQL isn't an API style. It's a question about who owns the shape of the response. When one graph feeds many surfaces, iOS, Android, web, each asking for exactly the fields it needs, that ownership belongs with the client and the complexity pays for itself. At GigSmart, two apps and a web client hit one graph, and it was worth every bit of the schema. Point it at a single client talking to a single backend and you've bought resolvers and a caching headache to solve a problem you don't have. REST was fine. Earn it.

$06.26.26
  08:10

I Ran Your Demo

The 45-minute demo isn't an evaluation. It's a guided tour with the broken doors locked, and I know because I used to build the route. I started as a sales engineer. That's exactly why I won't take the call. You don't learn a tool from the path someone choreographed so you'd never click the wrong thing.

judgment
$06.24.26
  08:25
take

Let the compiler review the fleet

A fleet of agents generates more code in an afternoon than your team used to review in a week. Most of it plausible, some of it confidently wrong, all of it too much to eyeball. The compiler doesn't get tired. Static types check every line the agents wrote before you read one. It's the instinct behind the languages I build on now, Crystal and Rust: pay a little up front, stop paying at 2am. In the agent era that bill just comes due faster.

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