How I think about writing quality code fast with AI

Essay - Published: 2026.01.23 | 1 min read (491 words)
ai | software-engineering | tech

DISCLOSURE: If you buy through affiliate links, I may earn a small commission. (disclosures)

I recently did a small tech talk at Recurse Center's weekly presentation day on software engineering with AI so thought I'd share the key ideas here.

I've also recorded the presentation slides with a lot more detail (RC presentations are only 5 mins!).

Mental Models AI

I think of AI as an eager, book-smart junior engineer that doesn't eat, sleep, or get bored. It's a super fast reader, typer, and researcher. It's a decent coder in most mainstream languages and has read tons of books and articles. But it has little hands-on experience, low taste and judgment for choosing what to apply when, and low discipline for sticking to rules.

What AI means for the industry

There are three approaches to building with AI:

  • Vibe Coding: Very fast, hands-off, produces "slop"
  • Vibe Engineering: Fast, human-in-the-loop, production-ready
  • Traditional Engineering: Slow, hands-on, craftsmanship

I think the future is vibe engineering - take the principles of traditional engineering and leverage the super fast speed of AI LLMs.

Different work calls for different approaches.

  • Tree nodes (critical infrastructure, core value, new frontiers) still need Traditional Engineering.
  • Branch nodes (CRUD features, N+1 work) benefit from Vibe Engineering.
  • Leaf nodes (prototypes, internal tools, non-load-bearing code) can tolerate Vibe Coding.

Vibe Engineering Workflow

The standard agentic AI loop is: Plan -> Build -> Review.

  • Plan: You with AI feedback
  • Build: AI with you tweaking
  • Review: You with AI feedback

This is very similar to a normal software engineering cycle. The difference is that you now play the role of the Tech Lead / Manager and AI is the implementer.

Going Further

You can enhance each phase:

Better Planning:

  • Use layered specs: Product PRD (what exists) -> Change PRD (what we're building) -> Tech Spec (how to implement)
  • Define explicit success criteria upfront
  • Have AI critique your plan and interview you about clarifications

Better Building:

  • Have AI follow checklists and update progress
  • Automatically run tests, linters, and builds after changes
  • Use fresh agents for clear context on each task

Better Reviews:

  • Define what "good" looks like in AGENTS files and PRDs
  • Enforce deterministic guardrails: types, tests, linters, e2e tests
  • Spin up parallel AI reviewers with different perspectives (correctness, simplicity, performance, security)

And once you've gotten those loops nice and reliable, you can move onto chains where AI auto passes from one loop to the next.

Further Reading

From the Pragmatic Engineer:

Want more like this?

The best way to support my work is to like / comment / share for the algorithm and subscribe for future updates.