The blog as of 14078bb

A cumulative snapshot of every article published up to Can I Deploy Your Code? on June 26, 2026. 13 articles. View the current list →

June 26, 2026

One of the fastest ways to read the health of a platform is to ask whether you can deploy its code right now, safely, using the process the team claims to trust. A clean answer means deployment is a repeatable, disciplined process. An answer that routes through Dave, or Sarah, or a specific Jenkins, or a forbidden Friday, means you have found a fragile system protected by institutional knowledge instead of engineering discipline. Every time a deployment requires a specific human instead of a repeatable process, you have found technical debt disguised as expertise.

June 26, 2026

Context switching is real, but it is not the disease. The cost of interruption is a symptom of a deeper problem: we build software delivery around fragile human memory, where the engineer is the only place the working model of the system actually lives. AI raises the stakes by quietly turning individual contributors into orchestrators of small AI teams, which means even more context to carry. The fix is not heroic focus, it is durable context that lives in the system instead of in one person's head.

June 18, 2026

A dark factory runs with the lights off because the machines do not need people on the floor. Applied to software, a fully autonomous delivery system is not practical for most teams, but it is a useful forcing function: pretend the system had to run without constant human intervention, and ask where it would break first. Wherever it breaks is where your delivery still depends on undocumented judgment, unclear ownership, weak tests, fragile deployments, and rollback plans nobody has practiced.

June 17, 2026

Most teams that say they want CI/CD really just want the deploy button to hurt less, so they reach for CD first. That is the wrong order. The first problem is CI: trunk-based development and meaningful automation. Get those right and CD becomes a controlled move of a known-good main branch instead of a faster way to ship uncertainty.

June 17, 2026

Arguments about monorepos usually start with tooling, but the real issue is coordination. A repository structure is a delivery model: it encodes ownership, dependencies, release flow, and how much coordination people need before they can safely ship. Size repositories around deployables and publishables so the repo boundary tells the truth about how the software actually ships.

June 16, 2026

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.

June 16, 2026

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.

June 16, 2026

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.

June 16, 2026

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.

June 15, 2026

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.

June 14, 2026

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.

© 2026 ABWaters. Made quietly.