im·a·cto

$ tail -f the_log

The Log

Short, often, in plain english. Engineering judgment, the occasional strong opinion, and the life around it.

filter

Log entries

$07.13.26
  08:34
take

Your API is your agents' hands

Build the open API first, dogfood it, then invite others in. That used to be a pure growth bet: every team that integrates makes the product bigger than you could grow it alone. There's a second payoff now. The surface you built for outside developers is the same one your agent fleet drives. At Phoneware I put MCP servers over the platforms underneath so the fleet operates them like any other client. Design it once, for humans and agents both. Skip that and you're writing a second interface for the machines later.

$07.08.26
  08:30

Scale Is a Design, Not a Dial

You added instances and the system got slower. That's not a bug in the autoscaler. It's a ceiling that was drawn months earlier, on a whiteboard, by whoever decided where the state lives. Scale is a design decision made before a line is written, and no console reaches back to unmake it. In the agent era it's the most expensive decision of the invisible kind, because the bottleneck never shows up in the diff.

architecture
$07.06.26
  08:34
life

Fourth of July weekend, and I was actually off. Phone in a drawer, kids outside, something on the grill. The fleet kept opening MRs, the merge train held the line, nobody paged me. I spent a lot of years being the load-bearing wall. Turns out the quiet reward for building the tracks right is that the thing stands up fine while you're not holding it up.

$07.05.26
  07:55

The Story of Ownership

You got an offer with the word 'owner' in it, and you never read the four pages after it. The vesting, the cliff, the ninety-day window where you buy what you earned or forfeit it. Ownership is the cheapest thing a company can hand out, because the word costs nothing. There's the story of ownership and there's ownership, and most places are very good at giving you the first while the second stays exactly where it was.

ownership
$07.04.26
  08:30

Ownership Theater

"Act like an owner" is one of the most common asks in tech, and one of the most dishonest. It wants the behavior of ownership from people who were handed the story of it. Here's the gap, and how I build the real thing instead.

ownership
$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.

$06.21.26
  09:30

The Load-Bearing Wall

Being the one who can always fix it feels like seniority. It's a bus factor of one with a green contribution graph. The most valuable thing you know is worth nothing until you can hand it off, to a teammate or a fleet.

leadership
$06.20.26
  08:40

The Plan Was Never the Point

An agent will hand you a finished plan in twelve seconds: sectioned, sequenced, a risks heading and all. The trap is that planning was never about the document. It was the thinking that builds the judgment to adapt when reality hits. Outsource the planning and you keep the artifact, lose the map, and find out three weeks later when nobody can explain a decision nobody actually made.

judgment
$06.19.26
  07:45

Earn It

The most senior move in an architecture review is usually the one that sounds the least impressive. Complexity isn't a cost you pay when you choose it. It's a tax you pay every day you operate it, and most systems start paying long before the workload was ever going to make them.

architecture
$06.18.26
  09:20
take

Autonomy is infrastructure, not trust

"Ask forgiveness, not permission" is half a sentence. The other half is the rails that make forgiveness cheap: tests, CI, review, types. That's what lets me turn a team, or a fleet of agents, loose without signing off on every move. The guardrails catch what goes wrong before it ships. Pull them out and "move fast" is just "break things" with extra confidence. Build the rails first, then get out of the way.

$06.16.26
  21:00

The Tests Are Green

Passing CI is not the same as working software. The gap between 'the tests are green' and 'the feature actually works' is where the expensive bugs live, and in the agent era, it's getting wider.

reliability
$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.

$05.29.26
  21:00

Volume Is Free Now. Judgment Is the Whole Game.

Eight years as the most prolific engineer at a company I helped build, and why I'm now convinced that was a failure, not an achievement. Volume got commoditized; judgment is the whole game.

leadership
$05.27.26
  17:40
life

Drove to the office this morning, realized it was in shambles, and turned right back around to work from home. Some days the best architecture decision is the commute you don't make.

$05.26.26
  09:02
take

"Add AI" is not a roadmap item

Watching teams bolt a chatbot onto a product with no idea what problem it solves. AI is a tool, not a strategy. If you can't say what gets faster or cheaper or better, you're shipping a press release.

$05.21.26
  11:30
take

The deploy path is a product

If you can't release at any time, 24/7, Friday afternoon included, you don't have a culture problem. You have a tracks problem. Fix the rails and the courage shows up on its own.

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