When AI Writes and Reviews Your Code: The New Developer Verification Crisis
F
Farhan
@farhan
|Sep 27, 2026|5 min read||1 views
The headline that sparked the debate\n\nEarlier today Dev.to published a provocative article titled If AI Writes the Code and AI Reviews the Code, What Exactly Is the Developer Verifying? The piece highlighted a workflow where an LLM drafts a feature, another model creates the test suite, and a third model opens the pull request. At the same time, Hacker News users are debating Evolving programming languages in the AI era and many developers are posting hot takes like Everyone's learning to prompt better. That's the wrong skill. Together these threads reveal a single, urgent question: What is the developer's role when the machine does the heavy lifting?\n\n> "The moment you trust a model to write and review code, you have to decide whether you are a verifier, a curator, or a completely obsolete role."\n\n### From manual pipelines to AI‑first pipelines\n\nTraditional software development has three clear stages: write code → write tests → review via peer PR. Each stage provides a safety net. In an AI‑first pipeline those safety nets are replaced by other models, and the human is left with a single, ambiguous checkpoint. Below is a side‑by‑side comparison of the classic and AI‑augmented flows.\n\n| Stage | Classic Workflow | AI‑First Workflow | New Human Responsibility |\n|-------|------------------|-------------------|--------------------------|\n| Write feature | Developer writes code | LLM generates code from a prompt | Verify intent, architectural fit |\n| Write tests | Developer writes unit/integration tests | Another LLM creates test cases | Validate test relevance, edge cases |\n| Review | Peer reviews PR, runs CI | Model runs static analysis, suggests changes | Approve or reject model suggestions, ensure business logic |\n\n### Why verification is harder than it looks\n\n1. Context loss – LLMs excel at local patterns but often miss project‑wide constraints such as naming conventions, performance budgets, or legacy compatibility.\n2. Hallucinated logic – A model may produce code that compiles but implements a subtly wrong algorithm, especially in domains like cryptography or finance.\n3. Bias amplification – If the training data contains anti‑patterns, the AI will reproduce them, and a single reviewer may not catch them all.\n\nThese issues mean that verification is no longer a quick glance at diff hunks; it becomes a deep, system‑level audit.\n\n### Prompting is not the new super‑skill\n\nMany developers have rushed to build massive prompt libraries, convinced that better prompts equal better outcomes. The Dev.to article Everyone's learning to prompt better. That's the wrong skill. argues that prompt engineering is a surface‑level trick that hides the real work: understanding model limits and designing robust guardrails.\n\n- Prompt libraries are static; models evolve daily and break those libraries.\n- Over‑reliance on prompts discourages developers from learning the underlying APIs and data flows.\n- Real productivity gains come from pipeline orchestration, not from a longer list of prompt variants.\n\n### Programming languages are morphing under AI pressure\n\nHacker News users are already discussing how languages like Python, TypeScript, and even Rust are being tweaked to become more LLM‑friendly. Some trends include:\n\n- Typed docstrings: Adding type hints directly in comments to help models infer correct signatures.\n- Self‑describing APIs: Using OpenAPI specs that LLMs can consume to generate client code automatically.\n- Macro‑heavy ergonomics: Languages such as Rust are seeing more procedural macros that let a model generate boilerplate with a single annotation.\n\nThese changes are not driven by the language designers alone; they are community responses to the fact that AI tools now read and write code at scale.\n\n### What should developers do right now?\n\n1. Treat AI output as a contract, not as code – Treat the generated snippet as a specification that must be validated against functional requirements.\n2. Build automated sanity checks – Use property‑based testing (e.g., Hypothesis) or fuzzers to catch edge‑case failures that a model might miss.\n3. Invest in model‑agnostic observability – Log prompts, model versions, and confidence scores so you can trace back a bug to its source.\n4. Learn the fundamentals of software architecture – No amount of prompt tweaking can replace a solid understanding of system boundaries, data flow, and security.\n5. Participate in community guardrails – Contribute to open‑source lint rules that detect AI‑specific anti‑patterns, such as overly generic variable names or missing error handling.\n\n### A realistic scenario\n\nImagine you are working on a payment microservice. An LLM generates a new endpoint to handle refunds, writes a Jest test suite, and opens a PR. The model also adds a comment: "This function assumes the currency is always USD." As a verifier you must:\n\n- Check that the assumption matches business rules (it does not – the product supports EUR).\n- Add a parameter for currency and adjust the test matrix.\n- Verify that the new endpoint respects idempotency guarantees required by the payment gateway.\n\nOnly after these steps can you merge the PR. The AI saved you from typing boilerplate, but the core verification still required deep domain knowledge.\n\n### The long‑term outlook\n\nIf the current trend continues, we will see three possible futures:\n\n1. Human‑in‑the‑loop verification – Developers become specialized auditors, focusing on security, performance, and compliance.\n2. Full automation with model‑level guarantees – Companies invest in proprietary LLMs that come with formal verification certificates. This is still speculative and costly.\n3. Hybrid ecosystems – Open‑source tools provide guardrails (e.g., linters, test generators) while humans retain ownership of critical business logic.\n\nAt present, the industry is firmly in the first scenario. The hype around AI‑generated code is real, but the responsibility for correctness remains squarely on developers. Embrace the productivity boost, but double down on verification discipline.\n\n### TL;DR\n\n- AI can now write, test, and PR code, but verification is more complex than before.\n- Prompt engineering alone will not save you; focus on guardrails and architecture.\n- Languages are evolving to be more AI‑friendly, but the core skills of reasoning about systems stay essential.\n\n> If you treat AI as a teammate rather than a tool, you keep the codebase trustworthy and your career future‑proof.
discussion(0)
Chrome Finally Ships JPEG XL: Why This Matters for Every Web Developer