Twenty years of the web, and what it taught me about AI
Every abstraction leaks, the demo is not the system, and the human in the loop is not decoration.

Every generation of technology arrives with the same promise: this time the complexity will be handled for you. In the early 2000s it was table layouts and “works best in one browser.” Later it was frameworks that would make state simple. Now it is models that will make reasoning simple. The promise is always partly true, which is what makes it persuasive.
The web taught me that abstractions are useful precisely because they hide something. The engineering skill is knowing what was hidden, and what it will cost when it comes back. That is not cynicism. It is how you build on top of a tool without being surprised by it in production.
The demo is not the system
A demo shows the happy path with clean inputs and an audience that wants to believe. A system has to survive malformed data, partial failure, hostile users, expired credentials, and the ordinary chaos of a Tuesday. The distance between the two is where most of the engineering lives.
With AI, that distance is easy to underestimate because the output is fluent. Fluency reads as confidence. But a model that produces a convincing answer is not the same as a system that produces a correct one, and neither is the same as a system whose errors are detectable. Before adding intelligence, I want the boring parts: observability, evaluation, fallbacks, and a clear definition of failure.
Boring infrastructure wins
The web rewarded teams that invested in unglamorous things: caching, logging, migrations, tests, and a deploy process nobody has to think about. AI systems reward the same investments. Retrieval quality, data hygiene, latency budgets, and permission boundaries matter more than the model name on the slide.
This is also why I care about offline-first and resilience. The real world is not a reliable API. Networks drop, providers rate limit, and users keep working. A system that degrades honestly is more trustworthy than one that performs beautifully until the first interruption.
The human in the loop is not decoration
Automation changes the shape of responsibility; it does not remove it. Someone still decides what the system is allowed to do, what it must explain, and when a person has to sign off. The most useful AI products I have built or studied are the ones that make that boundary visible instead of pretending it disappeared.
Twenty years in, the lesson is almost embarrassingly plain: the technology is never the whole system. The people, the incentives, the failure modes, and the maintenance are the system. Build for those, and the new thing has a chance to last longer than the excitement around it.
Filed under

