AI made execution dramatically faster, but most teams are not bottlenecked on execution. They are bottlenecked on planning and validation, and AI does little for either by default. Speeding up the middle of the delivery system just backs the work up at review, testing, and deployment. The fix is to improve the whole loop, from intent to plan to change to safe production, not only the part that writes the code.
The blog as of ee40c71
A cumulative snapshot of every article published up to AI Speeds Up Execution, Not the System Around It on June 16, 2026. 8 articles. View the current list →
The serverless-versus-hosting cost debate is usually too shallow. The real tradeoff is not serverless versus servers, it is utilization efficiency versus economies of scale. Serverless makes waste visible as usage; hosting hides it as idle capacity. The cheapest system is the one whose cost model matches the shape of the workload and the maturity of the team operating it.
Once a defect is in production, the customer should not become part of your debugging environment. Triage that feels like progress, more logs, another build, "we think we're close," often just means the customer keeps absorbing the failure while engineering looks for certainty. The mature move is to stop the bleeding first, then diagnose.
Working yourself out of a job does not mean making yourself useless. It means removing the broken, fragile, one-person-dependent parts of your work so the system no longer needs babysitting. The best engineers do not protect a little kingdom of broken things. They make the kingdom unnecessary, and earn their way into bigger problems.
Boring software is not dull to build, it is uneventful to operate. The thing you ship can be clever and satisfying, but running it in production should be routine: practiced rollbacks, clear ownership, and no reliance on heroics. That kind of boring is engineered, not accidental.
Long-running branches feel productive for the developer who opens them, but the cost lands on everyone else through delayed integration, hidden assumptions, and uncertainty that surfaces right before a release. Trunk-based development is less a trend than the natural consequence of taking CI/CD seriously.
Cost-adjusted software engineering judges work by the value it creates against the full cost of building and operating it, not just whether it shipped. You can pay up front through testing, CI/CD, and clear ownership, or pay forever through incidents and rework.
Notes on what happens to software after it ships: ownership, deployment, operations, and the human layer underneath. Most architecture problems are really ownership problems.