Code generation can create work faster than a team can understand and review it. In this interview, AI engineer Florian Buetow argues that the answer is not simply another AI reviewer on every pull request. His experiments put feedback closer to the agent: tests, project-specific static rules, architecture boundaries, and hooks that tell it what failed before a human has to repeat the same comment.
Florian's “no code reviews” idea is a design challenge, not a demonstrated reason to remove approvals. Automate checks that are clear, repeatable, and testable; use humans to define the intended behavior, architecture, and acceptable risk. Start with one recurring review comment, measure whether an early guardrail catches it without false positives, and keep existing approval rules while the experiment earns trust.
Watch Florian's Interview
Credit: Florian Buetow explains the experiments in the original interview and writes at Cracking AI Engineering. The pilot and risk boundaries below are an editorial synthesis, not a result Florian claims to have proven across organizations.
The Bottleneck Moves Downstream
At 00:40, the conversation starts with a familiar asymmetry: an agent may produce a large change in minutes, while a senior engineer must still verify intent, behavior, and impact. The video's “10x more code” is a framing claim, not a measured factor for every team. The host recounts a Google I/O conversation about review pressure; this article treats that as his account, not an independently verified Google-wide finding. Florian also describes reported Amazon policies after AI-related incidents, but the interview does not provide the internal policy or incident record.
Florian distinguishes two responses. A horizontal response adds an AI reviewer to the existing PR queue. A vertical response changes the development environment so the agent gets reliable feedback while making the change (02:55). The second can remove routine comments from the queue, but it also requires a team to decide which checks are trustworthy and which decisions need human approval. GitHub's protected branches can require both reviews and passing status checks; one is not automatically a substitute for the other.
Three Guardrails Worth Testing
Florian's highest-value examples at 11:30 and 14:00 are deliberately local to a codebase. The goal is not a universal style rule; it is a machine-checkable version of a correction reviewers already make.
- Static patterns: use a formatter and linter, then add a targeted Semgrep rule for a recurring anti-pattern. Florian's example bans default argument values in a Python project because that pattern caused problems for him. Semgrep supports structural code patterns, not merely raw regular expressions. Test any custom rule against accepted and rejected code before treating it as policy.
- Behavioral tests: encode a failure case and expected outcome so the agent sees a precise signal. In Florian's own experiment, specs alone left too much room for interpretation, while tests plus a specification helped the agent correct its implementation (07:21). One project result does not make TDD universally superior to spec-driven work; weak or incomplete tests can also approve the wrong behavior.
- Architecture tests: enforce a boundary such as “UI cannot access the database directly.” ArchUnit's Java guide documents package, layer, and dependency checks. The rule should reflect an architecture the team actually wants, not a pattern inferred from accidental legacy structure.
A hook can run these checks when an agent finishes or edits code, then return a short failure message that identifies the rule and the expected fix. Claude Code's hook reference documents lifecycle events including Stop and tool-use events. Hook behavior and available controls vary by harness; test the exact command, timeout, permissions, and failure mode in your own environment. Never let an unchecked loop write indefinitely or run commands with broader access than the task requires.
Why the Harness and Feedback Loop Matter
At 06:46, Florian says that, in his experiments, the harness sometimes mattered more than the model. By harness he means the surrounding tool access, prompts, memory, hooks, and feedback that let a model inspect and change a project. His preferred tool changed during his testing. That is a reason to compare complete workflows on your own tasks, not a general ranking of Claude Code, Codex, or Copilot.
His spec-first attempt produced implementations that drifted from intent. Adding behavioral tests gave the agent an observable target and a way to iterate (10:06). The most useful prompt may therefore be less “build the whole service” and more “tell me what you understood, implement this narrow behavior, run these checks, and report what remains uncertain.” A specification remains useful for shared understanding; it is not executable proof by itself. Nor can a passing suite prove correctness outside the cases it covers.
What Still Needs a Human
Florian puts more effort before implementation: what should the system do, how should modules interact, and what must never change (15:07)? He argues that juniors can learn this architectural and product reasoning instead of only measuring how quickly they type code. Human ownership also includes deciding whether a rule is appropriate, whether test coverage matches the risk, and whether an agent's answer makes sense.
The headline “stop doing code reviews” is intentionally provocative. Later, Florian narrows it: deterministic checks and AI scans can direct attention to the important areas, and people may review the specification or architecture rather than every routine line (24:08). That still leaves human approval for sensitive data flows, payments, access control, production operations, security exceptions, and unfamiliar changes. AWS's published control framework explicitly notes that generated code can pass deterministic checks yet remain functionally wrong, and includes AI-assisted review for human approvers before deployment.
He and the host also discuss cognitive debt: a team can ship more code while understanding less of its own system. Florian describes exhaustion from reacting to many agent sessions and suggests limiting context switching, inspecting agent handoffs, and turning repeated corrections into checks (20:26). These are his observations, not a clinical burnout study. Private session logs may contain secrets and customer data; mine them only with organizational permission and an approved storage and model boundary.
A One-Week, Low-Risk Pilot
Florian's recommended first move at 33:59 is small: formatter, linter, then one static rule based on feedback the team already gives. A responsible pilot keeps the existing review gate intact while checking whether the new signal reduces rework.
- Days 1-2: choose a non-critical repository and one repeated review comment. Record a small baseline: time until first useful feedback, number of repeated comments, and reviewer minutes.
- Days 3-4: write a Semgrep rule or architecture test with known-positive and known-negative examples. Run it locally in advisory mode; document false positives and legitimate exceptions.
- Days 5-6: give the agent the check result before PR submission. Observe whether it corrects the issue without introducing a new one. Keep a human reviewer for the whole change.
- Day 7: compare against the baseline. Keep the rule only if it catches real issues, is comprehensible to the team, and does not create disproportionate false positives. Require team approval before making it a blocking check.
The first success criterion is not “zero reviewers.” It is fewer repeat comments without a rise in escaped defects or loss of developer understanding. Stop or roll back a rule that blocks valid work, drives awkward workarounds, or creates more triage than it saves.
Video Chapters
| Time | Segment |
|---|---|
| 00:00 | Introduction |
| 00:40 | Review bottleneck |
| 01:57 | Big-tech policies |
| 02:55 | Horizontal vs vertical scaling |
| 04:37 | “No reviews” as a design goal |
| 05:22 | Agent feedback environments |
| 06:46 | Harness vs model |
| 07:21 | Specs and TDD experiment |
| 10:06 | Hooks and feedback loops |
| 11:30 | High-value guardrails |
| 14:00 | Architecture constraints |
| 15:07 | Human responsibility |
| 17:33 | Upfront design work |
| 18:47 | Junior engineers' skill |
| 20:26 | AI burnout |
| 22:42 | Cognitive surrender |
| 23:25 | Risk and policy |
| 24:08 | AI-assisted review |
| 26:39 | Spec-driven teams |
| 29:01 | Rebuild from tests? |
| 30:27 | How to experiment |
| 33:15 | Subagent handoffs |
| 33:59 | Start with static checks |
| 36:08 | Session-log patterns |
| 37:00 | One-harness constraints |
| 38:28 | One experiment this week |
Business Idea Prompt: Review Friction Audit
Use the interview to test one measurable improvement for a real engineering team, not to sell a promise of fully autonomous code review.
One review comment, one rule
Measure saved effort before expanding.
Sources and Limits
Creator account: Florian's interview and the supplied transcript support his experiments, preferences, and anecdotes. Tool behavior: Semgrep's rule examples, ArchUnit's guide, and Claude Code's hook reference. Review controls: GitHub's branch protection documentation and AWS's published agent-control framework. The interview does not provide raw comparative data for “10x code,” Google-wide review practice, Amazon's internal incident policy, or a controlled no-review deployment. Those are not treated as verified facts here. Evidence checked October 16, 2026.