Vibe engineering

Source: original

Simon Willison’s Weblog

Sponsored by: AWS — If you're building with AI, AWS Summit NYC on June 17 is the room you want to be in. 200+ sessions. Totally free. Register here

Vibe engineering

7th October 2025

I feel like vibe coding is pretty well established now as covering the fast, loose and irresponsible way of building software with AI—entirely prompt-driven, and with no attention paid to how the code actually works. This leaves us with a terminology gap: what should we call the other end of the spectrum, where seasoned professionals accelerate their work with LLMs while staying proudly and confidently accountable for the software they produce?

I propose we call this vibe engineering , with my tongue only partially in my cheek.

Update 23rd February 2026 : It looks like the term “Agentic Engineering” is coming out on top for this now. I have a new tag for that and I’m working on a not-quite-a-book.

One of the lesser spoken truths of working productively with LLMs as a software engineer on non-toy-projects is that it’s difficult. There’s a lot of depth to understanding how to use the tools, there are plenty of traps to avoid, and the pace at which they can churn out working code raises the bar for what the human participant can and should be contributing.

The rise of coding agents —tools like Claude Code (released February 2025), OpenAI’s Codex CLI (April) and Gemini CLI (June) that can iterate on code, actively testing and modifying it until it achieves a specified goal, has dramatically increased the usefulness of LLMs for real-world coding problems.

I’m increasingly hearing from experienced, credible software engineers who are running multiple copies of agents at once, tackling several problems in parallel and expanding the scope of what they can take on. I was skeptical of this at first but I’ve started running multiple agents myself now and it’s surprisingly effective, if mentally exhausting!

This feels very different from classic vibe coding, where I outsource a simple, low-stakes task to an LLM and accept the result if it appears to work. Most of my tools.simonwillison.net collection (previously) were built like that. Iterating with coding agents to produce production-quality code that I’m confident I can maintain in the future feels like a different process entirely.

It’s also become clear to me that LLMs actively reward existing top tier software engineering practices:

If you’re going to really exploit the capabilities of these new tools, you need to be operating at the top of your game. You’re not just responsible for writing the code—you’re researching approaches, deciding on high-level architecture, writing specifications, defining success criteria, designing agentic loops, planning QA, managing a growing army of weird digital interns who will absolutely cheat if you give them a chance, and spending so much time on code review.

Almost all of these are characteristics of senior software engineers already!

AI tools amplify existing expertise. The more skills and experience you have as a software engineer the faster and better the results you can get from working with LLMs and coding agents.

“Vibe engineering”, really?

Is this a stupid name? Yeah, probably. “Vibes” as a concept in AI feels a little tired at this point. “Vibe coding” itself is used by a lot of developers in a dismissive way. I’m ready to reclaim vibes for something more constructive.

I’ve never really liked the artificial distinction between “coders” and “engineers”—that’s always smelled to me a bit like gatekeeping. But in this case a bit of gatekeeping is exactly what we need!

Vibe engineering establishes a clear distinction from vibe coding. It signals that this is a different, harder and more sophisticated way of working with AI tools to build production software.

I like that this is cheeky and likely to be controversial. This whole space is still absurd in all sorts of different ways. We shouldn’t take ourselves too seriously while we figure out the most productive ways to apply these new tools.

I’ve tried in the past to get terms like AI-assisted programming to stick, with approximately zero success. May as well try rubbing some vibes on it and see what happens.

I also really like the clear mismatch between “vibes” and “engineering”. It makes the combined term self-contradictory in a way that I find mischievous and (hopefully) sticky.

Posted 7th October 2025 at 2:32 pm · Follow me on Mastodon, Bluesky, Twitter or subscribe to my newsletter

More recent articles

This is Vibe engineering by Simon Willison, posted on 7th October 2025.

Part of series How I use LLMs and ChatGPT

  1. Tips on prompting ChatGPT for UK technology secretary Peter Kyle - June 3, 2025, 7:08 p.m.
  2. Designing agentic loops - Sept. 30, 2025, 3:20 p.m.
  3. Embracing the parallel coding agent lifestyle - Oct. 5, 2025, 12:06 p.m.
  4. Vibe engineering - Oct. 7, 2025, 2:32 p.m.
  5. Claude can write complete Datasette plugins now - Oct. 8, 2025, 11:43 p.m.
  6. Getting DeepSeek-OCR working on an NVIDIA Spark via brute force using Claude Code - Oct. 20, 2025, 5:21 p.m.
  7. Video: Building a tool to copy-paste share terminal sessions using Claude Code for web - Oct. 23, 2025, 4:14 a.m.
  8. … more

code-review 14 definitions 53 software-engineering 62 ai 2,066 generative-ai 1,824 llms 1,792 ai-assisted-programming 385 vibe-coding 91 coding-agents 209 parallel-agents 16 agentic-engineering 52

Next: Claude can write complete Datasette plugins now

Previous: OpenAI DevDay 2025 live blog

Monthly briefing

Sponsor me for $10/month and get a curated email digest of the month's most important LLM developments.

Pay me to send you less!

Sponsor & subscribe