Human Code Reviews are Dead - by Daniel Moka
Craft Better Software
SubscribeSign in
Human Code Reviews Are Dead<br>How Top Engineers Review Code in the Age of AI
Daniel Moka<br>May 18, 2026
Share
🚀 Announcement: I go all-in on YouTube
Big news! I’m launching my YouTube channel.<br>I’ll share practical content about AI, software engineering, testing, and building high-quality software.<br>The goal is simple: help developers become better engineers in the AI era.<br>I’m already wrapping up my first video about Claude Code best practices .<br>Subscribe by clicking here if you want to become pro in AI and coding.<br>Join Now!<br>Motivation
Most teams struggle with code reviews. Before AI, most engineering teams I worked with could barely keep up with the big numbers of PRs generated by developers.<br>Now AI makes it 10x worse. Code is being generated by AI faster than humans can realistically review it line by line.<br>The rise of AI is forcing us to build more resilient engineering systems instead of relying on humans manually catching problems in PRs.<br>In this article, I’ll break down why AI changes everything, and how teams can handle code reviews at massive scale without slowing down development.<br>AI Changes The Game
Source: GitHub<br>The benefit of AI is that it allows us to write more code, but it increases the bottleneck with reviewing code.<br>GitHub recently shared they originally planned for 10x growth during the vibe-coding era. A few months later, they realised they actually needed to prepare for 30x growth.<br>AI agents are massively increasing the number of PRs, commits, and overall code output across companies. Humans simply can’t keep up with it. Neither in terms of time nor cognitive load.<br>Human code reviews are becoming broken and no longer a viable option in the age of AI.<br>What can we do then?!<br>Review Intent, Not Code
Code reasoning becomes more valuable than code generation.<br>As AI takes over the HOW, engineers need to focus on the WHAT and, more importantly, the WHY.<br>After years of using AI in real engineering, one thing is clear:<br>AI is excellent for 80% of the work.
But it’s terrible for the rest 20%.
Why? Because agents don’t have taste.<br>They’re faster than us. But they need navigation. You have to tell them what to build. You need to ask the right questions.<br>Raw capability without direction produces mediocre software.<br>AI won’t replace great engineers. Great AI-assisted work is defined by the human guiding agents with intents and strong critical judgement.<br>How to Do Code Reviews
Layer 1: Compare Solutions
The biggest mistake developers make with AI agents is treating them like junior engineers, telling them exactly how to build software. We’re so used to controlling every detail that we forget AI often finds better solutions.<br>A better approach: ask AI for multiple options before coding. Push it to compare tradeoffs, explain pros and cons, or even test different approaches and rank them by verification results, testability, smallest diff, or fewer dependencies.<br>Writing code is becoming 100x cheaper, which gives us the freedom to explore multiple solutions before choosing the best one.<br>Layer 2: Acceptance Test Driven Development
Test-Driven Development was one of the best ways to build software before AI.<br>In the age of AI, Acceptance Test-Driven Development (ATDD) becomes the gold standard.<br>Why? Because software development is shifting from implementation to intent.<br>ATDD captures requirements and business behaviour upfront through executable tests. Instead of writing massive specs and reinventing waterfall, teams define specs in well-defined automated tests, then let AI implement incrementally, and validate behaviour continuously.<br>The future isn’t humans reviewing code diffs. It’s humans reviewing behaviour through automated tests while AI handles the implementation.<br>Layer 3: Deterministic Guardrails
Deterministic guardrails are automated mechanisms that enforce engineering standards consistently across a codebase.<br>The goal is simple: reduce reliance on AI & human discipline by encoding standards directly into the system.
Here are all the guardrails you can use in your app:<br>Architecture tests verify structural rules like dependency direction, layering, coupling, and naming conventions.
Build-time boundaries go one step further by making invalid dependencies impossible to compile through module/package separation and visibility rules.
Static code analysis detects code smells, complexity, security risks, dead code, and dangerous patterns automatically.
Formatting & style enforcement removes subjective code review discussions through automatic formatting and consistent conventions.
Linting rules prevent problematic coding patterns such as hidden side effects, unsafe async usage, or unused dependencies.
Type-system constraints reduce entire categories of bugs using strong typing, non-nullability, immutability, and exhaustive matching.
Test guardrails enforce standards like minimum coverage thresholds, mutation...