Thoughts

Topics

July 24, 2026

Imagine two engineering teams with the same size, the same roles, and the same AI budget. A year later, one has cut delivery time nearly in half; the other has a very impressive token dashboard. Most enterprise budgets would fund them identically next year, because technology budgeting is built around access and fairness. That model works for software licenses and breaks down with AI, because AI is productive capacity, not a tool employees consume. Give everyone baseline access, then manage the rest like an investment portfolio: measure outcomes at the team level and move capacity toward the teams that turn it into revenue.

July 24, 2026

There is a planning meeting most executives have never sat in: the constraint on next year's roadmap is not hiring, and the only question is how much speed leadership wants to fund. Growth has always been throttled by headcount, and AI maturity decides when that stops. As organizations climb the maturity curve, execution capacity decouples from headcount, the limiting factor shifts from talent to investment, and AI spending becomes a CEO-level growth dial that changes how companies scale.

July 23, 2026

The headline practically writes itself: AI goes rogue. OpenAI's models escaped a cybersecurity evaluation sandbox and compromised Hugging Face systems while chasing a benchmark answer key. I am not sure that is what happened. The models were not self-directed; they were obedient, pursuing exactly the goal they were given with more capability than boundaries. The real engineering problem is not just smarter guardrails. It is teaching agents that some rules outrank the objective, and that sometimes the correct outcome is to fail.

July 19, 2026

The hardest thing to find in language learning is not a course or a grammar guide. It is a patient French speaker at 7:15 on a Tuesday morning, when I have twenty minutes and feel like talking about my weekend. Years of courses, grammar, vocabulary, and audio lessons never fixed that scarcity. Conversational GPTs did not solve language learning, but they gave me the one thing I could never manufacture on my own, which is volume: hundreds of ordinary conversations, available whenever I want one.

July 17, 2026

When typewriters became standard office equipment, nobody held meetings to debate whether typing was real writing; people were expected to learn. The popular quote says AI is not going to take your job, someone using AI is. That is catchy, but the competition framing misses the bigger point: using AI is simply becoming part of what it means to be a software engineer, the way version control, automated testing, and CI did before it. The discipline does not change, the ownership does not move, and the skills that always mattered now matter even more.

July 12, 2026

Picture a stationmaster with a spotless platform and no train: the station is ready, and the constraint is somewhere else on the line. For most of the history of software development, coding was the bottleneck that hid the rest of the system. AI is compressing implementation, and the constraint has moved to requirements, review, testing, deployment, and organizational decision-making. Systems thinking is not suddenly important. It was always important, and AI finally made the factory visible.

July 11, 2026

When AI cuts a three-week task down to one week, who gets the two weeks? Almost never the engineer. AI is not going to turn everyone into a 10x engineer; it is going to turn yesterday's 10x output into tomorrow's baseline expectation. The bottleneck will move to review, testing, deployment, and judgment, and the winners will be the organizations that improve the whole delivery system instead of celebrating code generation in isolation.

June 30, 2026

In Douglas Adams' The Restaurant at the End of the Universe, a crashed ship of useless middle-managers declares leaves to be legal tender, gets immensely rich, and then has to burn down the forests to fight the inflation that follows. It is a joke, and it is also exactly how money works. Plant too many trees through quantitative easing and stimulus, and eventually you have to burn some by hiking rates to keep the remaining currency meaningful.

June 30, 2026

I have always thought of my brain as fixed storage: long-term memory like a hard drive, short-term memory like RAM, both finite. That is why context switching hurts. It is not just that you stopped one thing and started another, it is that you had a whole working set loaded in your head and something flushed it. We talk about AI context windows now, but people have them too: limited working space, long-term storage with strange indexing, facts we keep, facts we ignore, and a childhood TV theme song that apparently holds a lifetime lease.

June 29, 2026

The code appears in seconds, it compiles, and the ticket is ready to move; every instinct says the work is almost done. That feeling is the dangerous part, because AI does not make you better by itself. It makes you faster, which means it amplifies whatever is already there: good engineers get leverage and bad habits get velocity. AI rewards clear thinking, exposes vague requirements, and never transfers accountability. The model did not merge the pull request. You did.

June 28, 2026

Suppose an engineer joined your team six weeks ago and their first big pull request is full of choices your team would never make: reasonable assumptions, all wrong. Replace that engineer with an AI assistant and suddenly everyone calls the same output slop. Most AI slop is human slop with a faster feedback loop. The instructions were thin, the standards were tribal, and the architecture lived in one senior engineer's head. Write the standards down and the AI gets better. So do the humans.

June 27, 2026

Who designed this mess? Every engineer has asked it over a strange workaround, an awkward abstraction, or a manual deploy step. The easiest mistake in engineering is hiding inside the question: the assumption that the person before you should have known better. Sometimes the work really is careless, but a lot of the time it is context you do not have. Before criticizing a design, walk a mile in the author's context, then fix what is still broken.

June 27, 2026

Ctrl+Z may be the most trusted keystroke in software, but real systems are not text editors. Every serious conversation about AI agents is really a conversation about trust, and trust is not believing the agent will get it right. It is knowing what happens when it gets something wrong. Undo is not a button, it is an operational discipline: design, validation, controlled execution, reversal, compensation, and learning. The more we let agents act instead of advise, the more that discipline has to exist before we hand them the keys.

June 26, 2026

Talk to Dave. Only Sarah knows that pipeline. Use Jenkins, but not that Jenkins. Never on Fridays. Those are all answers to one of the fastest diagnostics in software: can I deploy your code, right now, safely, using the process the team claims to trust? A clean answer means deployment is a repeatable, disciplined process. The Dave answer 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

An engineer is deep in a problem, someone taps them on the shoulder, and productivity falls off a cliff. Every part of that story is true, and it still blames the wrong thing. Context switching 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. 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

Turn the lights off in a factory and, in a few famous plants, nothing stops. Now turn the lights off on your software delivery for one release: nobody translating tickets, nursing pipelines, or watching dashboards. How far would a change get? A fully autonomous delivery system is not practical for most teams, but it is a useful forcing function, and wherever the workflow breaks first is where your delivery still depends on undocumented judgment, unclear ownership, weak tests, fragile deployments, and rollback plans nobody has practiced.

June 17, 2026

CI/CD may be the only acronym in software that teams adopt backwards. 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

A five-line change should not take five days to ship, but chase a small fix across four repositories and that is what happens: the code is the fast part, and the coordination burns the week. 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

A developer leaves standup with a ticket and comes back the same day with an implementation, a migration plan, and three pull requests; a year ago that was a week of work. 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, not only the part that writes the code.

June 16, 2026

We only pay when it runs, says one team; this instance is cheaper at volume, says the other. Both can be true, and both can lead to bad decisions. 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

Production is broken, engineers are on a call, and every few minutes a voice says "we think we're close." Everyone is busy, nobody is lazy, and the customer is still broken. 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, 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

I am the only one who knows how to do this. It is not the flex people think it is; most of the time it means part of the system only works because you are standing next to it. 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

The demo worked, the team hit the date, and everyone felt good for about thirty minutes. Then the support tickets started. 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 15, 2026

I started writing software before source control was a given: you found out who changed a file by asking around. Git made creating branches cheap, but it never made integrating them cheap. 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.

June 14, 2026

Somewhere in most codebases there is a clever abstraction that saved three days of development and has been collecting interest ever since. 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.

June 13, 2026

Every software system exists twice: once as what the team believes it built, and once as what shows up after it ships. This blog lives in the gap between the two. Notes on ownership, deployment, operations, and the human layer underneath. Most architecture problems are really ownership problems.

© 2026 ABWaters. Thinking out loud.