The AI stack layers are not the same size

Ten-layer diagrams of the AI stack are accurate and slightly misleading, because they draw every layer the same size. Building a compliance agent that now handles most of our cases end to end, the first four took a couple of weeks. The rest took the year. Embeddings, a vector store, retrieval, a model. That’s the demo, and it demos well enough that people start asking about a rollout date. Then the actual work starts. ...

September 17, 2026 · 2 min · Murat Useinov

AI made the writing free. It made nothing else free

A model wrote most of a service I shipped this month. Reading it took twenty minutes. Deciding I was willing to put my name on it took the rest of the day. That ratio is the whole post. Writing code was never the expensive part. Owning it is. I’ve been in this trade long enough to remember when typing was a real bottleneck. It stopped being one around the time autocomplete got good, and nobody noticed, because we kept measuring engineers by output. Lines, tickets, velocity. Proxies for the cheapest activity in the building. ...

September 2, 2026 · 2 min · Murat Useinov

Coding agents meet legacy PHP

A strange-looking condition in a 2015 module, “fixed” by an agent. All tests green, static analysis clean, and the condition was a business rule with history. My review caught it. Barely. That came out of an experiment I ran this month: a coding agent on one legacy PHP module, since agents can do multi-file changes now and every old codebase suddenly looks like a target. The setup matters more than the model. I did not ask “modernize this”. I gave a narrow migration goal on one bounded module: replace a deprecated API, add proper namespaces, keep behavior. The same shape of task I would give to Rector. The difference is that the agent also handles the irregular cases Rector cannot express, the places where people wrote creative code in 2015. ...

October 10, 2025 · 2 min · Murat Useinov

AI assistants do not know your production

A DTO with a dozen fields, a framework migration, a slow query incident. Three tasks from the last few months, all done with Copilot and ChatGPT open. Here is where the line runs for me. Task one, boilerplate. The DTO, its validation rules, a test with fixtures. The assistant writes this faster than I type, and the result needs only a quick read. Same for converting an array-shaped legacy structure into typed classes. This is honest time saved, maybe an hour a day. The code is the kind where being generic is correct. ...

December 23, 2023 · 2 min · Murat Useinov