Austin Wallace — Data Engineer
Minimal Version 🔌 AWS
← Back to blog

Proposing a Taxonomy of Agentic Engineering

Chart showing grokking in modular addition - train loss drops immediately while test loss stays high for thousands of epochs before suddenly collapsing

The Problem: We’re Not Talking About the Same Thing

When someone says “you can vibe code anything,” and someone else says “vibe coding produces unmaintainable slop,” they’re both right—because they’re describing different things.

This isn’t a post about that discourse. It’s about giving you—an individual developer—a vocabulary to decide where you should operate on this spectrum, project by project, task by task.


The Taxonomy

LabelYou Are…Good For
Vibe codingNever looking at the code. You may not even know the language. Pure prompting and vibes.Throwaway prototypes, things you truly don’t care about, tasks that would shock you if an agent screwed up
Vibe engineeringNot reading code, but heavily invested in prompting, tooling, verification, architectureThings you care about but not enough to read every line, or where you don’t know the language
Agentic engineeringWriting some code yourself, reviewing critical parts, owning all architecture decisionsWhen it really matters, when there’s user data, when you want to maximize quality with all available effort
Human-driven developmentUsing AI only for tab-complete, never prompting for codeWhen you want to code, when you deeply distrust AI in this domain
Hand codingEverything before 2022When you need perfect, when time doesn’t matter, when you need to prove you’ve still got it

How to Choose Your Level

The core principle: match your effort to how much you care about the outcome.

Factors That Push You Toward Pure Vibes

  • High verifiability — you can easily check if it works
  • Low cost of mistakes — easy to fix or throw away
  • Common patterns — the AI has seen this a million times

Factors That Push You Toward Hand Coding

  • High cost of mistakes — security, user data, money
  • Critical success — failure is not an option
  • Perfection matters — “great” isn’t good enough, you need “perfect”

Factors That Don’t Correlate Simply

  • Complexity — both hand-time and AI-time scale with complexity
  • Your expertise — cuts both ways (better prompts vs. knowing what slop looks like)

The Grokking Principle

Here’s the real insight: For most things you care about, the sweet spot is minimizing human-in-the-loop while fully grokking what you’re building.

To grok something is to hold it in your mind and reason about all its aspects. There are levels:

  1. Goal — Do you understand what you’re trying to do and what makes it hard?
  2. Architecture — Do you understand how the pieces fit together?
  3. Tools — Do you know the languages/libraries and why they were chosen?
  4. Code — Could you walk someone through every file and explain the decisions?

These are in descending order of importance. You can vibe code without grokking architecture, but you can’t build something good without reasoning about tradeoffs. You can ship without grokking your tools, but the hard parts become much harder.

The danger zone: slowly losing your grip on a project as it grows more complex and AI-driven. If you catch yourself unable to explain why something works, you’ve stopped grokking.


The Secret Third Thing: Style Convergence

How much does matching existing code style matter?

This requires upfront hand-work to establish, but then it’s pure vibes. Every time you generate slop, do the human work of identifying the generalizable principle it violated—then add that to AGENTS.md. With enough iterations, models can match any code style.


TL;DR

  1. “Vibe coding” means different things to different people—here’s a taxonomy
  2. Choose your level based on how much you care about the outcome
  3. The biggest predictor of success is whether you grok what you’re building
  4. You can vibe hard as long as you maintain understanding

Base text written by Austin, enhanced by various AI tooling providers, and deployed with SST.