Who Pays for the AI Boom?

The main bottleneck for AI replacing white-collar work at scale is that the best models are large and expensive to run. Every step up in capability costs a…

Tips to junior developers, now that a coding agent writes the code

In 2017 I gave junior developers four tips about writing code. With a coding agent doing the typing, what a junior needs to learn has moved: architecture, the…

ADO.NET, the right way (reloaded)

Thirteen years after my ADO.NET article, the reader has changed: much of the data access code I ship is written by a coding agent. The foundation of a Data…

I built a live ops dashboard with no chart library and no framework

Stat tiles, a line chart against capacity, meters and a status grid, updating every second from one Server-Sent Events stream. All plain custom elements.

Server-side paging and sorting for an HTML table, with one async function

Hand-written table paging has a race condition almost everybody ships. Let the table ask for pages, pass the abort signal on, and the race is gone.

Your line of business web does not need a framework

Frameworks were built to fill gaps in the browser. Most of those gaps are closed. What is left for a business page is a table, some tabs and a chart, and…

I shipped five products with my own AI agent. Then I built what it was missing.

Instructions in a prompt are requests. How I moved my rules out of the prompt and into tests, analyzers and decisions.

tsc looked at my templates and saw a nice string.

Templates are strings, so tsc cannot see a typo in them. Angular and vue-tsc can. npx @relax.js/core check closes most of that gap by resolving every template…

How do you know the agent isn't quietly rotting your codebase?

Agent-written code passes review and still erodes a system. Four mechanisms in Kiwipow Agent that answer it with evidence rather than with trust.

How an agent verifies a webpage it can never look at

mount, flush, fakeServer and mountRouting. The four helpers that let an agent verify a page the way the app uses it, from vitest, without a server or a browser.