Theo on Disposable AI Code and Verifying Important Software

Theo argues that generated code can serve experiments and verification while critical production changes retain careful review.

TBTheo BrownePonente · Ping Labs
Canal
Theo - t3․gg
Publicado
22 jul 2026
Vídeo
24:11
Lectura
6 min
Diapositivas
5
Original
inglés
Abrir en YouTube
Al desplazarte, el vídeo se reduce a la esquina inferior derecha y sigue reproduciéndose. Los subtítulos siguen tu idioma de lectura.
Idioma de lecturaDisponible en 2 idiomas
Este artículo aún no está en español, así que se muestra el original en inglés.
RESUMEN

En 30 segundos

Theo Browne argues that engineers can generate more disposable code to explore and verify important systems. He distinguishes experimental code from production changes and says safety-critical code should still receive careful human review. Generated tests and agent reviews are useful only insofar as their results are reliable and appropriately checked.

  1. 1Keep critical reviewTheo says safety-critical shipped code still deserves careful human review.
  2. 2Generated does not mean mergedExperimental code may be discarded rather than submitted for production.
  3. 3Lines are not a safety metricTheo’s large verification-to-code ratios are illustrative rhetoric, not quality guarantees.
  4. 4Generate tools to ask questionsCustom linting, debugging and load tests can help investigate specific hypotheses.
  5. 5Review interfaces and test their useTheo reads API definitions and generates sample clients to find usability problems.
  6. 6AI review is supplementaryMultiple agent reviews can help but may still miss or share mistakes.

Conclusiones

  1. Generated code can answer one-off questions without being merged into a product.
  2. Critical production code still needs review and verification appropriate to its consequences.
  3. Generated verification tools can be wrong; line counts and passing tests alone do not guarantee safety.
  4. Use experiments, instrumentation and sample clients to investigate specific assumptions.
  5. AI reviews supplement human judgment and independent checks.
TEXTO COMPLETO

Lee el texto editado por capítulos

Solo la transcripción
01

The provocative claim

Theo distinguishes the fraction of generated code read from the review required for critical production code.

How much AI-generated code should engineers read? My provocative answer is that many people read too large a percentage of what they generate. The more important part is that they may not yet be generating enough code for experiments and verification. That is different from saying critical production code should escape review.

Think of software on a spectrum: a tiny side project with one viewer is at one end, and firmware for a pacemaker is at the other. A failure can have vastly different consequences. I think online arguments often go wrong because people assume their own place on that spectrum applies to everyone else.

For the sake of the argument, assume every line of your shipped code is so important that a mistake could cost a life. In that case I agree that every shipped line deserves careful human review. My argument is about the additional code you can create around it, not about weakening that review.

02

Code that is never shipped

He uses hypothetical line counts to explain disposable experiments and verification.

Code can be useful without ever becoming part of a product. You can write a separate tool, experiment or test to investigate a hypothesis or check important behavior. If producing a program becomes cheaper, more of these previously uneconomical investigations become possible.

I make up some numbers to illustrate the old workflow: perhaps I read 1,000 lines a day, wrote 200 and merged 100. Code was expensive to produce, and code intended for production went through review. These are illustrative figures, not measurements or a recommended productivity target.

Illustrative daily code volumes
DIAPOSITIVA 1 / 5Illustrative daily code volumesThe diagram compares hypothetical lines read, written and merged.

Now imagine reading a similar amount but generating 2,000 lines and merging 500. The apparent gap between generated and read code sounds alarming until you ask what the rest is for. Much of it may be discarded after testing an idea rather than submitted for review or merged.

Previously, writing a large amount of code for a one-off question was hard to justify. I might have added analytics to a product and written SQL to answer a user question, but that took time. Cheaper generation makes it more plausible to produce a temporary program for a specific question.

03

Verification around important systems

Theo proposes additional checks while retaining existing scrutiny for safety-critical code.

Consider a financial ERP system where a mistake could cause substantial losses. My proposal is not to merge unreviewed output into it. Keep the scrutiny appropriate to the system, and consider additional generated checks, debuggers and experiments around the important code.

I use exaggerated ratios—hundreds or thousands of verification lines for a line of production code—to make the point that verification can be much larger than the code it examines. Those numbers are rhetoric, not a safety standard: line count alone does not establish test quality or coverage.

If the existing test harness is itself important, I suggest experimenting at another layer: tools that inspect runs, logs or assumptions without replacing the vetted process. A generated checker can also be wrong, so its results need interpretation and independent validation before they support an important decision.

A viewer says most generated code goes into test harnesses and guardrails, with the agent receiving the results. That is the kind of use I mean. Whether you write or review the production code and tests by hand, the extra experimental layer can help explore possibilities that were previously too costly.

Suppose a safety-critical engineer previously wrote and verified 100 lines and read 200 in a day. I am not asking that engineer to stop checking the important work. The numbers are hypothetical: the point is to preserve the established verification process while considering additional ways to investigate.

In my example, the engineer might write and verify 80 lines, read 400 and generate 800 lines of exploratory code kept outside the product. That disposable code could probe assumptions and exercise the 80 lines. Its usefulness depends on whether the checks are sound and appropriately isolated, not on the volume generated.

A critical-code example
DIAPOSITIVA 2 / 5A critical-code exampleTheo contrasts verified production lines with a larger amount of generated exploratory work.
04

Cheap experiments and their limits

He gives examples of throwaway scripts, instrumentation and tests, while acknowledging generated code can be wrong.

I wrote a large amount of JavaScript to organize roughly a hundred files on my Windows computer. Doing that by hand would have been hard to justify. My point is that a program can be a disposable instrument for one task rather than a permanent feature someone must maintain.

Generated code can still be poor, and unverified code in important systems can cause harm. I agree with critics on that. My claim is that cheaper generation gives us another way to investigate and verify; it does not make the generated output automatically trustworthy or free of operational risk.

Examples from my own work include custom lint rules, one-off debuggers, instrumentation for React code and load-testing experiments. These tools let me ask questions I might not previously have spent time implementing. Their results are evidence to inspect, not a guarantee that a system is correct.

My distinction is between making critical code cheaper and creating more cheap code around it. I am advocating the latter. Reading code takes time and care; the goal is not to rush unsafe changes into production but to find more ways to improve the code that matters.

05

A spectrum of importance

A funnel distinguishes disposable experiments from business-critical and life-critical software.

The importance funnel
DIAPOSITIVA 3 / 5The importance funnelThe funnel separates disposable code from software where failure can be life-threatening.

I draw a funnel of importance. At the top are disposable experiments; lower down are things I would like to work, then business-critical systems, and finally software where a failure could kill someone. These are illustrative categories, and one engineer’s work can span several of them in the same day.

Historically, producing throwaway code could cost as much effort as writing carefully maintained code. I think that cost discouraged exploration. With generation, an engineer working on critical firmware can preserve the strict boundary around it while doing more experiments outside that boundary.

06

Applying the idea

Theo discusses reviewing APIs, agent-generated examples, test harnesses and AI-assisted review.

For my projects, different parts deserve different attention. I like a suggestion to ask an agent for a file-by-file summary of a large diff, then investigate anything surprising. A summary can help navigate a change, but it can omit or misstate details; how much direct review is needed depends on the consequences and the team’s process.

Four levels of importance
DIAPOSITIVA 4 / 5Four levels of importanceThe expanded diagram shows intermediate cases between disposable and safety-critical code.

In Lakebed, I read all the function signatures and API definitions because their quality affects future maintenance. I also generate small applications with multiple agents to see whether they can use a new API. If the experiments reveal confusion, I can improve the interface before shipping it.

Existing tests, harnesses and wrappers for safety-critical work may also deserve careful review. On top of those, an agent might try several one-off theories, write additional tests or make an experimental port to compare implementations. An experiment that will never merge can still answer a useful question.

I understand the resistance because the loudest examples of AI coding can be careless output shipped to users without adequate checking. I dislike that too. But poor examples do not eliminate the potential value of disposable experiments used to support a responsible engineering process.

Generated, reviewed and merged code
DIAPOSITIVA 5 / 5Generated, reviewed and merged codeTheo’s post illustrates the difference between producing, reviewing and merging code.

I also use AI to review code before bringing it to my team, often asking multiple agents to check it. That can produce useful feedback, but model reviews can miss defects or agree on the same mistake; they supplement rather than guarantee independent verification.

My closing request is to be more creative about what code can do. Treat some programs as disposable instruments for one question or theory, and keep the appropriate review for the code and evidence that matter. The aim is better verification, not an excuse to ship unsafe output.

Más de este canal

5 diapositivas38:47EN
Theo - t3․gg· 28 oct 2026Theo’s Long-Running Agent Experiments: Verification, Compute and CostTheo Browne · Ping LabsA skateboard game and two compiler projects show how repeated checks and flexible compute can sustain agent work—and how expensive those loops can become.Agentes de programaciónIngeniería de agentesAI cost & performance+2
5 diapositivas36:07EN
Theo - t3․gg· 27 oct 2026Theo on Token Costs, Coding Agents, and the Price of AI CapabilityTheo Browne · Ping LabsA viral estimate of Lauren's AI spending prompts a closer look at cache pricing, benchmarks, and the changing work of coding agents.AI cost & performanceAgentes de programaciónInference+1
5 diapositivas30:37EN
Theo - t3․gg· 26 oct 2026Theo’s Three Skills for Reviewing and Shipping with Coding AgentsTheo Browne · Ping LabsHow sol-loop, full-send and full-stop encode review, verification and different levels of merge authority.Agent skillsAgentes de programaciónCode review & verification+2
2 diapositivas0:43EN
Theo - t3․gg· 23 oct 2026Theo Distinguishes Security Vulnerabilities from Active AttacksTheo Browne · Ping LabsA short explanation of why disclosed software flaws and reported attacks are different kinds of security news.CybersecuritySoftware engineering
6 diapositivas29:22EN
Theo - t3․gg· 22 oct 2026Theo on Security Vulnerabilities, Stolen API Keys and AITheo Browne · Ping LabsA look at the gap between vulnerability disclosure and patching, and a speculative account of why stolen inference keys may be valuable.CybersecurityAI securitySoftware engineering+1
4 diapositivas31:13EN
Theo - t3․gg· 20 oct 2026Theo on Why Smarter Models Help More Than DevelopersTheo Browne · Ping LabsFrom game modifications to compiler experiments, Theo revisits his assumptions about who benefits from more capable AI.Agentes de programaciónDeveloper productivityHuman-AI Collaboration+1