AI Engineer Summit
November 12, 2026Online track5 min read

Agents Made Code Free. Maintaining It Didn't Get Cheaper.

Buykin once dealt with an expanding AI-written project by deleting unused tests and boilerplate, then rewriting the whole thing. Useful pieces disappeared with the mess. Worse, the rewrite did not solve the process that created it: agents kept adding code, and complexity grew back.

Dmitry BuykinMaersk

Official replacement recording · 0:00:00–0:18:03 on YouTube. The player starts and stops at this session’s boundaries.

Introduction

Dmitry Buykin, Maersk, replaces periodic destructive rewrites with smaller, evidence-driven maintenance loops that people can still understand.

This reading edition uses the complete official standalone recording, which restores the ending missing from the livestream excerpt. Links below use its clock.

Buykin once dealt with an expanding AI-written project by deleting unused tests and boilerplate, then rewriting the whole thing. Useful pieces disappeared with the mess. Worse, the rewrite did not solve the process that created it: agents kept adding code, and complexity grew back.

His Thanos analogy is deliberately uncomfortable. Keep everything and drown in accumulated change, or delete aggressively and break something people use. The third option is less dramatic: small weekly sweeps, bounded changes, and feedback loops that preserve evidence of what should survive.

0:01:34 ↗

Decide who knows what correct means

At 00:01:34, Buykin introduces a recurring task: changing the amount on an already approved order. Coding agents maintain the instructions; runtime agents follow them in production. A task belongs to a slice defined by a process and a country, and changes stay within that slice by default.

Much of the system consists of prose instructions rather than conventional code. Buykin tried deliberately breaking sentences to see whether tests noticed. Many did not. Passing tests could not tell him whether the business instructions still meant the right thing.

The expertise is distributed. Business specialists know the rules; developers investigate the traces, available data, and connections between systems. A request to check with a team might describe a decision that must remain human, or a step that could be automated once the relevant facts are available. Neither group can decide that alone.

The result is one document for two kinds of readers. Agents consume precise structured portions; experts read the surrounding explanation and approve it. Maintaining a second, separate account would create another opportunity for drift. Experts also need plain-language explanations of code so they can recognize a wrong outcome and turn it into a concrete correction.

0:05:13 ↗

Turn repeated paths into tools, but keep the decisions visible

At 00:05:13, the order example exposes a contradiction: prose and code disagree about the allowed limit. No compiler necessarily complains. The agent simply encounters inconsistent instructions.

Buykin adds linting and tracks the paths agents take through the instructions. A path that repeats consistently across countries can become a workflow tool. The first attempt made things worse because the old prose still described the steps now inside the tool. Agents performed those steps again.

The repair was to remove the duplicated procedure and retain the decisions. Code prepares facts and performs actions. Experts own the decision table. The model chooses the applicable row, and a person takes over when no row fits.

The order decision table sends an over-limit request to a team lead, an in-limit request to confirmation, and unmatched cases to a person.

At 00:06:50, the same order passes through preparation, expert-owned decisions, and execution. The visible example uses an amount of 1,250 against a 1,000 limit.

This is not a one-way migration from prose to code. Buykin also moves complicated expressions out of code when experts cannot read them. Stable mechanics belong in code; variable judgment must remain somewhere the responsible person can inspect. He explicitly describes a further composition of small model decisions and workflows as a next step not yet built.

0:07:18 ↗

Control what the agent sees and what a write can do

At 00:07:18, control begins before permission checking. When an agent could load everything, it invented a pricing check because prices happened to be available. More context gave it another reason to act, not necessarily a better reason.

The runtime now selects the facts needed for the decision. It retains the full record and gives the model a smaller representation. For large data, the model passes a handle to information held by the runtime rather than copying the whole object into context. The runtime checks that handle before a write and validates consistency.

Buykin layers checks around actions as well as around development changes. A journal prevents a retried write from executing twice when an earlier attempt appeared to fail. Permission at the outer edge is only one part of controlling the effect of an agent's decision.

0:09:24 ↗

Protect the reviewer as well as the system

The system had guardrails, but its architect was still becoming a bottleneck. At 00:09:24, Buykin describes reading every change until the volume exceeded his attention. A green dashboard did not mean he could explain what had happened.

He treats that inability as a signal to repair the process, rather than waiting for a more convenient metric. Instrumentation helps identify where deeper reading is worth the time: abrupt changes, wider effects, or clusters of similar failures across process-country slices.

An expert's correction becomes an evaluation case. An agent searches related slices for the same failure, but fixes only the places where the failure is confirmed. Markets and laws differ intentionally; copying a repair everywhere would erase valid variation.

To stop himself becoming the message bus, Buykin gives users a way to evaluate outcomes and records each loop in a ledger. Session memory moves into files that distinguish what happened from what is currently true. A new agent should begin from the current state rather than reconstructing it from a pile of unresolved historical events.

0:13:08 ↗

A green result needs evidence behind it

The recovered ending, beginning around 00:13:08, makes verification the limiting resource. Buykin ranks evidence by what it proves and places replay of real tasks above a generic success signal. Before results arrive, he writes down what would disprove the change. A new check must be made to fail intentionally before he trusts it.

A before-and-after branch diagram marks a lost over-limit branch and blocks the refactor.

The diagram at 14:00 follows the order example through a refactor. Losing the over-limit branch would bypass the team lead, even if other branches still worked.

Real tasks become a frozen replay set for comparing old and new versions. If no task exercises a branch, the status is missing evidence, not demonstrated correctness. A second agent reviews against a checklist without the author's reasoning, reducing the chance that a persuasive explanation substitutes for checking.

The ledger also reveals incomplete batches. Agents can finish many items and silently leave others behind, particularly when context fills up. Counting apparent coverage is weaker than counting items whose closure has supporting evidence.

Prune the behavior, including its tests

The last maintenance loop addresses regrowth. Real use determines which variants still matter. An unreachable path gets a name and an evidence trail before removal. When a variant is retired, tests that preserve that obsolete variant must retire with it; otherwise agents will continue treating the tests as instructions to keep the behavior alive.

Buykin describes current and planned gauges separately. The aim is a ratchet that prevents complexity from quietly growing past the reviewable limit, applied in small amounts every week rather than in one destructive rewrite.

He closes with a consequence of teaching agents through correction: the system absorbs the habits and biases of whoever corrects it. Its skills and memory can preserve an engineer's judgment, including the parts worth questioning. His checklist is an invitation to inspect that inheritance while the team can still understand each change, before another dramatic cleanup feels like the only remaining option.

Full transcript 353 timestamped passages

Machine-generated source transcript; recognition errors remain. Timestamps and subtitles use the selected source recording’s clock, not clip-relative time. Section links use cited source moments; sections without a verified moment return to the talk start.

0:00:00Hi, I'm Dimmitri. In this session, I

0:00:03will show how I work on maintaining

0:00:05large AI coding projects. Coding agents

0:00:08made code cheap. They made entropy even

0:00:12cheaper. In the Marvel movie, Thanos

0:00:15watched his home planet Titan collapse

0:00:18under its own growth. So, when the

0:00:20universe got crowded, he raised half of

0:00:23everything. This talk is about the one

0:00:26time I did the same in one project. Our

0:00:30code was growing the way Titan did. When

0:00:32I found what my agents had done, I

0:00:36deleted tests and boil the plate code

0:00:40nobody used. I had to rewrite the whole

0:00:43project and I lost some useful pieces.

0:00:46And that's the dilemma. Drown and chaos

0:00:49or break what people use. And here we'll

0:00:53build the third option for that project.

0:00:56The rewrite didn't hold. The agents kept

0:01:00writing and the mess grew back. So I

0:01:03drew a line above it. There is more

0:01:06change than anyone can check. The third

0:01:09option is to stay under it with small

0:01:12sweeps every week and feedback loops

0:01:15built into the system. Each chapter of

0:01:17this talk is one thing I had to learn to

0:01:19get there. Thanos needed six stones for

0:01:22one snap. Ours are six questions and

0:01:26they light up in the corner as we go.

0:01:29The first one is time. How do we stay

0:01:32under the line?

0:01:34Chapter one. To stay under the line. I

0:01:37first had to know what's right means

0:01:39here. I used to think that tests decide

0:01:42that. So what does right actually depend

0:01:46on?

0:01:48Let's keep one task in mind. Someone

0:01:50wants to change the amount on an order

0:01:53we already approved. Two kinds of agents

0:01:56meet here. One wrote the instructions

0:01:59and the other follows them in

0:02:01production.

0:02:04We run this in 110 countries with about

0:02:0710,000 scenarios of pros instructions.

0:02:11Every task lands in a slice. One process

0:02:14in one country. There's a second stone

0:02:18space. It asks where a change is allowed

0:02:21to go. By default, it stays inside its

0:02:25slice.

0:02:27Most of this system is pros about three

0:02:29quarters by my estimate. So pros needs

0:02:32engineering too. At start we borrowed

0:02:35mutation testing. You break one sentence

0:02:37on purpose and you watch for red test.

0:02:41Here almost none turned red. And if your

0:02:44wrapper is all code, your agent

0:02:47instructions and your tests are your

0:02:49pros. With agents, a rewrite is easy.

0:02:54The hard part is knowing what has to

0:02:56survive it. For code, tests can tell

0:02:59you. For pros, only people can. Agents

0:03:02can't build a complex system on their

0:03:05own. They fix what is easy to see and

0:03:08break consistency on the way. And people

0:03:11also get tired. So we spend their

0:03:13judgment only where it's needed. When

0:03:17business asked check with the team, it

0:03:20hides a real question. Is this a human

0:03:23step or can we automate it? Experts

0:03:25can't answer that. They don't see how

0:03:28the systems connect inside. So

0:03:30developers dig through the traces and

0:03:33logs with their coding agents and they

0:03:35decide which it is. In our task, the

0:03:38team leads decision stays human. The

0:03:41limit was data we could connect.

0:03:45Business experts see the rules.

0:03:47Developers see what's under the water.

0:03:50And that's where most bugs leave. They

0:03:53have their coding agents write those

0:03:55links down so the runtime can check

0:03:58them. Our guide for experts says it

0:04:00simply business tell us what we work out

0:04:04how. One document to readers. Agents

0:04:09read the blogs. So their blocks have to

0:04:11be exact. Experts read the text around

0:04:14them and they sign it. We keep one copy,

0:04:17a second one with drift and works both

0:04:20ways. Our code needs a plain description

0:04:22for experts too. Experts can only fix

0:04:26what they can see. Each of them reviews

0:04:29a task exactly the way the agent saw it.

0:04:33The node becomes the next change made by

0:04:35a coding agent and test it on the same

0:04:38task. So right depends on people. No

0:04:42single person knows it. A group of

0:04:45experts decides and that's why we bring

0:04:48them in from the start. You'll see the

0:04:51soul stone here a lot. We take it in

0:04:54chapter 4.

0:04:56Chapter two. Experts correct one task at

0:04:59a time while agents run the same pros

0:05:02all day. We track every outcome accepted

0:05:06or rejected. The accuracy shows us where

0:05:10people still need to look. I used to

0:05:13think the goal was to move everything

0:05:15into code. So where do we still need

0:05:18judgment? Here is our task again. The

0:05:21pro says the limit is 1,500. The code

0:05:25says a,000. The same order is fine in

0:05:28one place and too high in the other and

0:05:31nothing throws an error. Even a line

0:05:34like do not call X teaches the model

0:05:37that X exists. That's the third stone

0:05:41reality. Is it true or does it only look

0:05:44true for the model? Pros has no

0:05:47compiler. So we built one. Then the

0:05:50author lints every changed file into

0:05:53ledger just like code.

0:05:58Lind can't stop copies drifting aparts.

0:06:02So we watched the walks. A walk is the

0:06:04path one agent takes through the pros.

0:06:07When agents keep walking in the same

0:06:09path, we turn it into one workflow tool

0:06:12and we delete the pros that walked it.

0:06:16Our first workflow of tools made things

0:06:19worse. The pros still named the steps

0:06:22inside them. So agents run those steps

0:06:25again. It worked once. The pros kept

0:06:27only the decisions. Now a walk becomes

0:06:31code only when it repeats and agrees

0:06:34across countries otherwise it stays

0:06:37pros. What still varies stays in pros

0:06:41inside the frame. Code prepares the

0:06:44facts and carries out the decision.

0:06:47Experts own the decision table and the

0:06:50model only picks a row. If no row fits,

0:06:54a person takes over. We haven't built

0:06:56the next step yet. The model will take

0:06:58the small decisions and workflows will

0:07:01connect them. This boundary moves both

0:07:04ways. We moved hundreds of lines of

0:07:07expressions out of code and into pros

0:07:11because experts couldn't read them. A

0:07:14reax is still fine for spotting a

0:07:15critical signal. When there are many,

0:07:18they move into config. Judgment stays

0:07:21wherever the answer varies in a place an

0:07:24expert can read. Chapter three. Now the

0:07:28model decides and its decision becomes

0:07:31an action. I used to think control meant

0:07:35permissions on the agent. So what does

0:07:37it mean to stay in control?

0:07:41Control starts with what the model sees.

0:07:44That's what the fourth stone mind. What

0:07:47does the model know? When we let it

0:07:49choose what to load, it loaded

0:07:52everything. Then it invented a pricing

0:07:55check just because prices were visible.

0:07:58Whatever sits in its context becomes a

0:08:01reason to act. The runtime decides

0:08:04what's the model sees for our task.

0:08:07That's three facts from the order. The

0:08:09full record stays with the runtime and

0:08:12the model makes fewer wrong moves.

0:08:17Here how we minimize context blo for a

0:08:20big set. The model passes a handle, a

0:08:22short name for date that the runtime

0:08:24already holds. The runtime checks it

0:08:27before any write. It keeps the context

0:08:29small and still enough for the decision.

0:08:32At the same time, it uh validates

0:08:35context for consistency. A model with

0:08:39the right facts can still do damage.

0:08:41That's the fifth stone, power. What made

0:08:45change? We control a change twice.

0:08:47during development and again at the

0:08:50right at runtime only code opens the

0:08:53right path so we can change pros many

0:08:56times a day the open rings are the parts

0:08:59that still depend on people let's zoom

0:09:02in and run right five walls stand in

0:09:06front of it and the sixth checks that it

0:09:08landed if a right looks like it failed

0:09:12an agent retries and the journal makes

0:09:15sure it runs only once means much more

0:09:18than permissions on the agent.

0:09:24Chapter 4. Most days I glide over the

0:09:27system. From up here, everything looks

0:09:30fine, so I don't go down into every

0:09:32change my agents made. Then the surface

0:09:36gets rough. How do we know we're losing

0:09:39control?

0:09:41All those controls protect the system.

0:09:43Nothing protected my attention. At the

0:09:46start, I read every change and that's

0:09:48how the system picked up my habits. Then

0:09:52the volume grew past what one person can

0:09:55read. I was burning out and I stopped

0:09:58reading every change. That was the price

0:10:00of the last stone. So, who judges and

0:10:04what does it cost? With it, the gauntlet

0:10:07is complete. Every tech lead I know has

0:10:10been here. The one person every change

0:10:13waits on. agents just get you there in

0:10:16weeks instead of years. I needed a way

0:10:19of working that doesn't run through one

0:10:22head. And the first gauge was me. When

0:10:25I'm tired and I can't explain what

0:10:27changed, that's the signal. The

0:10:30dashboard can be green while that gauge

0:10:33is firing. So, I stop and fix the

0:10:36process first. I don't wait for a

0:10:38number. I couldn't read every div

0:10:41anymore. So I built instruments that

0:10:44watch how things change and their

0:10:46derivatives. One of them is blast

0:10:49radius. Before we built one new check,

0:10:52we replayed its rule over several

0:10:54thousand past sessions. It would have

0:10:56fired on less than 1%. Where the numbers

0:11:00jump, I go down and read. When something

0:11:04looks wrong, we wait. One signal waits

0:11:06until it comes back, even when it comes

0:11:09from an expert. A cluster across slices

0:11:12is different. Then we fix the concept

0:11:15behind it once. Left alone, an agent

0:11:18keeps adding conditions until today's

0:11:20tasks pass. The eval score drops when

0:11:23you take them out and you get an honest

0:11:26list of gaps.

0:11:31One red slice is rarely alone. The

0:11:34experts note becomes an eval and an

0:11:36agent searches the siblings for the same

0:11:39failure. Siblings differ on purpose by

0:11:42market and by local law. So we sweep

0:11:45them and the fix goes only where the

0:11:48failure is confirmed.

0:11:53At any time 10 to 20 of these loops are

0:11:57open. At one point I had become the

0:11:59message bus between users and my agents.

0:12:03At this scale, every user has to be an

0:12:06evaluator with a screen to give feedback

0:12:08without me. My job as the architect is

0:12:12to build those loops into the system.

0:12:15Each loop writes to a ledger. So nothing

0:12:18waits on my memory and nothing waits on

0:12:20me.

0:12:24Agents forget everything when a session

0:12:26ends. So the memory has to leave in

0:12:29files. We keep two kinds. what happened

0:12:32and what is true now. The next session

0:12:35starts from what is true now.

0:12:40Every issue has to connect to its root

0:12:43cause. Without that, the agent decides

0:12:46on wrong facts and the check has nothing

0:12:49to count. So we don't act without

0:12:51evidence.

0:12:54Reality comes back. In chapter two, it

0:12:58asked if the pros is true. Now it asks

0:13:01if the change is I used to trust green.

0:13:05So what would make us change our mind?

0:13:08Green was tempting because checking is

0:13:11where the times goes. My agent spend

0:13:14almost 9/10en of that time on a change

0:13:17just checking it and checking took a

0:13:19bigger share of my own week too.

0:13:22Verification speed is the limit.

0:13:27We rank evidence by what it proves. A

0:13:30replay on real tasks sits at the top.

0:13:34Before the data arrives, we write down

0:13:36what would prove us wrong. And every new

0:13:39check has to fail once on purpose before

0:13:42we trust it.

0:13:46AI refactors fail quietly. Every

0:13:50condition and every decision table row

0:13:53is a branch. And after a refactor, each

0:13:56one has to land exactly once. Here the

0:13:59branch for amounts over the limit got

0:14:01lost. Our [snorts] order would have gone

0:14:04through without the team lead. Real

0:14:07tasks decide what we test. We freeze

0:14:11them as a set and replay the old version

0:14:14against the new one. If no real task

0:14:17takes a branch, we call that no

0:14:19evidence.

0:14:21You can't trust one agent to judge its

0:14:24own work. A second agent checks it with

0:14:28a checklist and without the author's

0:14:30reasoning. It can't be talked into

0:14:32agreeing. Over 6 months, it grew to most

0:14:36of my checking.

0:14:39Coding agents finish most of a batch and

0:14:43quietly skipped the rest, especially

0:14:45when their context is full. The ledger

0:14:48shows what was skipped in one backlog.

0:14:51Most items looks covered, but only about

0:14:54a quarter could really be closed. So now

0:14:58evidence we can count is what changes

0:15:01our mind. And this is the third option

0:15:05from the start of the talk. I used to

0:15:08think there were two choices. Keep

0:15:11everything or snap. So what is worth

0:15:14carrying forward?

0:15:16This one process over a year. Some

0:15:19branches merged back, some still drift,

0:15:22and some are dead but still look alive.

0:15:25Which ones deserve to survive?

0:15:30A fix is only a moment. These forces

0:15:33keep pushing right after it. You've met

0:15:36most of them already. This chapter deals

0:15:39with regrowth and branching.

0:15:44The first gauge was me back in chapter

0:15:464. These are the gauges for the code.

0:15:50Time gets its answers here. The bridge

0:15:53line comes back as a number. A ratchet

0:15:56means the count can only go down. Two

0:15:58gauges run today and six more are next.

0:16:04Every week real use decides what stays.

0:16:07Anything no real task reaches gets a

0:16:10name and its evidence before it goes.

0:16:13Test the evidence I didn't have when I

0:16:16snapped. Tests kept that variants alive.

0:16:20Agents kept every option a test still

0:16:23mentioned. Now retired variant takes its

0:16:27test with it. Here's the whole method as

0:16:30one week. This is the third option as a

0:16:34process.

0:16:39together. That's the full gauntlet.

0:16:42Thanos used his for one snap. We use

0:16:45ours every week in small doses with

0:16:48evidence. I haven't had to snap again.

0:16:55Soul had a second price and I only saw

0:16:58it later. After we deliver it to

0:17:01production, I found my own engineering

0:17:03principles built into the systems

0:17:06design. Its skills and its memory carry

0:17:09my habits and my biases. Conway said the

0:17:12system copies the orc chart. Ours copies

0:17:16whoever corrects it. Here are 18

0:17:19questions, three for each stone. I'm

0:17:22using them when working on my projects.

0:17:26Pause here and pick one your own

0:17:29repository can't answer yet. That's

0:17:32where to start.

0:17:37I learned to use this process when I was

0:17:40already burning out. If you're the one

0:17:43your team's changes weight on today,

0:17:46this is for you. Use your stones while

0:17:49you can still read every change. In the

0:17:52end, Thanos retires to a garden. Maybe

0:17:55he should start using them daily. Thank

0:17:59you.