simonwillison-net-yekorg.txt (13602B)
1 [1]Simon Willison’s Weblog 2 3 [2]Subscribe 4 5 Vibe engineering 6 7 7th October 2025 8 9 I feel like vibe coding is [3]pretty well established now as covering the fast, 10 loose and irresponsible way of building software with AI—entirely 11 prompt-driven, and with no attention paid to how the code actually works. This 12 leaves us with a terminology gap: what should we call the other end of the 13 spectrum, where seasoned professionals accelerate their work with LLMs while 14 staying proudly and confidently accountable for the software they produce? 15 16 I propose we call this vibe engineering, with my tongue only partially in my 17 cheek. 18 19 One of the lesser spoken truths of working productively with LLMs as a software 20 engineer on non-toy-projects is that it’s difficult. There’s a lot of depth to 21 understanding how to use the tools, there are plenty of traps to avoid, and the 22 pace at which they can churn out working code raises the bar for what the human 23 participant can and should be contributing. 24 25 The rise of coding agents—tools like [4]Claude Code (released February 2025), 26 OpenAI’s [5]Codex CLI (April) and [6]Gemini CLI (June) that can iterate on 27 code, actively testing and modifying it until it achieves a specified goal, has 28 dramatically increased the usefulness of LLMs for real-world coding problems. 29 30 I’m increasingly hearing from experienced, credible software engineers who are 31 running multiple copies of agents at once, tackling several problems in 32 parallel and expanding the scope of what they can take on. I was skeptical of 33 this at first but [7]I’ve started running multiple agents myself now and it’s 34 surprisingly effective, if mentally exhausting! 35 36 This feels very different from classic vibe coding, where I outsource a simple, 37 low-stakes task to an LLM and accept the result if it appears to work. Most of 38 my [8]tools.simonwillison.net collection ([9]previously) were built like that. 39 Iterating with coding agents to produce production-quality code that I’m 40 confident I can maintain in the future feels like a different process entirely. 41 42 It’s also become clear to me that LLMs actively reward existing top tier 43 software engineering practices: 44 45 • Automated testing. If your project has a robust, comprehensive and stable 46 test suite agentic coding tools can fly with it. Without tests? Your agent 47 might claim something works without having actually tested it at all, plus 48 any new change could break an unrelated feature without you realizing it. 49 Test-first development is particularly effective with agents that can 50 iterate in a loop. 51 • Planning in advance. Sitting down to hack something together goes much 52 better if you start with a high level plan. Working with an agent makes 53 this even more important—you can iterate on the plan first, then hand it 54 off to the agent to write the code. 55 • Comprehensive documentation. Just like human programmers, an LLM can only 56 keep a subset of the codebase in its context at once. Being able to feed in 57 relevant documentation lets it use APIs from other areas without reading 58 the code first. Write good documentation first and the model may be able to 59 build the matching implementation from that input alone. 60 • Good version control habits. Being able to undo mistakes and understand 61 when and how something was changed is even more important when a coding 62 agent might have made the changes. LLMs are also fiercely competent at 63 Git—they can navigate the history themselves to track down the origin of 64 bugs, and they’re better than most developers at using [10]git bisect. Use 65 that to your advantage. 66 • Having effective automation in place. Continuous integration, automated 67 formatting and linting, continuous deployment to a preview environment—all 68 things that agentic coding tools can benefit from too. LLMs make writing 69 quick automation scripts easier as well, which can help them then repeat 70 tasks accurately and consistently next time. 71 • A culture of code review. This one explains itself. If you’re fast and 72 productive at code review you’re going to have a much better time working 73 with LLMs than if you’d rather write code yourself than review the same 74 thing written by someone (or something) else. 75 • A very weird form of management. Getting good results out of a coding agent 76 feels uncomfortably close to getting good results out of a human 77 collaborator. You need to provide clear instructions, ensure they have the 78 necessary context and provide actionable feedback on what they produce. 79 It’s a lot easier than working with actual people because you don’t have to 80 worry about offending or discouraging them—but any existing management 81 experience you have will prove surprisingly useful. 82 • Really good manual QA (quality assurance). Beyond automated tests, you need 83 to be really good at manually testing software, including predicting and 84 digging into edge-cases. 85 • Strong research skills. There are dozens of ways to solve any given coding 86 problem. Figuring out the best options and proving an approach has always 87 been important, and remains a blocker on unleashing an agent to write the 88 actual code. 89 • The ability to ship to a preview environment. If an agent builds a feature, 90 having a way to safely preview that feature (without deploying it straight 91 to production) makes reviews much more productive and greatly reduces the 92 risk of shipping something broken. 93 • An instinct for what can be outsourced to AI and what you need to manually 94 handle yourself. This is constantly evolving as the models and tools become 95 more effective. A big part of working effectively with LLMs is maintaining 96 a strong intuition for when they can best be applied. 97 • An updated sense of estimation. Estimating how long a project will take has 98 always been one of the hardest but most important parts of being a senior 99 engineer, especially in organizations where budget and strategy decisions 100 are made based on those estimates. AI-assisted coding makes this even 101 harder—things that used to take a long time are much faster, but 102 estimations now depend on new factors which we’re all still trying to 103 figure out. 104 105 If you’re going to really exploit the capabilities of these new tools, you need 106 to be operating at the top of your game. You’re not just responsible for 107 writing the code—you’re researching approaches, deciding on high-level 108 architecture, writing specifications, defining success criteria, [11]designing 109 agentic loops, planning QA, managing a growing army of weird digital interns 110 who will absolutely cheat if you give them a chance, and spending so much time 111 on code review. 112 113 Almost all of these are characteristics of senior software engineers already! 114 115 AI tools amplify existing expertise. The more skills and experience you have as 116 a software engineer the faster and better the results you can get from working 117 with LLMs and coding agents. 118 119 “Vibe engineering”, really? 120 121 Is this a stupid name? Yeah, probably. “Vibes” as a concept in AI feels a 122 little tired at this point. “Vibe coding” itself is used by a lot of developers 123 in a dismissive way. I’m ready to reclaim vibes for something more 124 constructive. 125 126 I’ve never really liked the artificial distinction between “coders” and 127 “engineers”—that’s always smelled to me a bit like gatekeeping. But in this 128 case a bit of gatekeeping is exactly what we need! 129 130 Vibe engineering establishes a clear distinction from vibe coding. It signals 131 that this is a different, harder and more sophisticated way of working with AI 132 tools to build production software. 133 134 I like that this is cheeky and likely to be controversial. This whole space is 135 still absurd in all sorts of different ways. We shouldn’t take ourselves too 136 seriously while we figure out the most productive ways to apply these new 137 tools. 138 139 I’ve tried in the past to get terms like [12]AI-assisted programming to stick, 140 with approximately zero success. May as well try rubbing some vibes on it and 141 see what happens. 142 143 I also really like the clear mismatch between “vibes” and “engineering”. It 144 makes the combined term self-contradictory in a way that I find mischievous and 145 (hopefully) sticky. 146 147 Posted [13]7th October 2025 at 2:32 pm · Follow me on [14]Mastodon, [15]Bluesky 148 , [16]Twitter or [17]subscribe to my newsletter 149 150 More recent articles 151 152 • [18]A new SQL-powered permissions system in Datasette 1.0a20 - 4th November 153 2025 154 • [19]New prompt injection papers: Agents Rule of Two and The Attacker Moves 155 Second - 2nd November 2025 156 • [20]Hacking the WiFi-enabled color screen GitHub Universe conference badge 157 - 28th October 2025 158 159 This is Vibe engineering by Simon Willison, posted on [21]7th October 2025. 160 161 Part of series [22]How I use LLMs and ChatGPT 162 163 29. [23]Tips on prompting ChatGPT for UK technology secretary Peter Kyle - June 164 3, 2025, 7:08 p.m. 165 30. [24]Designing agentic loops - Sept. 30, 2025, 3:20 p.m. 166 31. [25]Embracing the parallel coding agent lifestyle - Oct. 5, 2025, 12:06 167 p.m. 168 32. Vibe engineering - Oct. 7, 2025, 2:32 p.m. 169 33. [26]Claude can write complete Datasette plugins now - Oct. 8, 2025, 11:43 170 p.m. 171 34. [27]Getting DeepSeek-OCR working on an NVIDIA Spark via brute force using 172 Claude Code - Oct. 20, 2025, 5:21 p.m. 173 35. [28]Video: Building a tool to copy-paste share terminal sessions using 174 Claude Code for web - Oct. 23, 2025, 4:14 a.m. 175 176 [29] code-review 13 [30] definitions 35 [31] software-engineering 59 [32] ai 177 1658 [33] generative-ai 1463 [34] llms 1430 [35] ai-assisted-programming 265 178 [36] vibe-coding 52 [37] coding-agents 88 [38] parallel-agents 6 179 180 Next: [39]Claude can write complete Datasette plugins now 181 182 Previous: [40]OpenAI DevDay 2025 live blog 183 184 Monthly briefing 185 186 Sponsor me for $10/month and get a curated email digest of the month's most 187 important LLM developments. 188 189 Pay me to send you less! 190 191 [41] Sponsor & subscribe 192 193 • [42]Colophon 194 • © 195 • [43]2002 196 • [44]2003 197 • [45]2004 198 • [46]2005 199 • [47]2006 200 • [48]2007 201 • [49]2008 202 • [50]2009 203 • [51]2010 204 • [52]2011 205 • [53]2012 206 • [54]2013 207 • [55]2014 208 • [56]2015 209 • [57]2016 210 • [58]2017 211 • [59]2018 212 • [60]2019 213 • [61]2020 214 • [62]2021 215 • [63]2022 216 • [64]2023 217 • [65]2024 218 • [66]2025 219 220 221 References: 222 223 [1] https://simonwillison.net/ 224 [2] https://simonwillison.net/about/#subscribe 225 [3] https://simonwillison.net/2025/Mar/19/vibe-coding/ 226 [4] https://www.claude.com/product/claude-code 227 [5] https://github.com/openai/codex 228 [6] https://github.com/google-gemini/gemini-cli 229 [7] https://simonwillison.net/2025/Oct/5/parallel-coding-agents/ 230 [8] https://tools.simonwillison.net/ 231 [9] https://simonwillison.net/2025/Sep/4/highlighted-tools/ 232 [10] https://til.simonwillison.net/git/git-bisect 233 [11] https://simonwillison.net/2025/Sep/30/designing-agentic-loops/ 234 [12] https://simonwillison.net/tags/ai-assisted-programming/ 235 [13] https://simonwillison.net/2025/Oct/7/ 236 [14] https://fedi.simonwillison.net/@simon 237 [15] https://bsky.app/profile/simonwillison.net 238 [16] https://twitter.com/simonw 239 [17] https://simonwillison.net/about/#subscribe 240 [18] https://simonwillison.net/2025/Nov/4/datasette-10a20/ 241 [19] https://simonwillison.net/2025/Nov/2/new-prompt-injection-papers/ 242 [20] https://simonwillison.net/2025/Oct/28/github-universe-badge/ 243 [21] https://simonwillison.net/2025/Oct/7/ 244 [22] https://simonwillison.net/series/using-llms/ 245 [23] https://simonwillison.net/2025/Jun/3/tips-for-peter-kyle/ 246 [24] https://simonwillison.net/2025/Sep/30/designing-agentic-loops/ 247 [25] https://simonwillison.net/2025/Oct/5/parallel-coding-agents/ 248 [26] https://simonwillison.net/2025/Oct/8/claude-datasette-plugins/ 249 [27] https://simonwillison.net/2025/Oct/20/deepseek-ocr-claude-code/ 250 [28] https://simonwillison.net/2025/Oct/23/claude-code-for-web-video/ 251 [29] https://simonwillison.net/tags/code-review/ 252 [30] https://simonwillison.net/tags/definitions/ 253 [31] https://simonwillison.net/tags/software-engineering/ 254 [32] https://simonwillison.net/tags/ai/ 255 [33] https://simonwillison.net/tags/generative-ai/ 256 [34] https://simonwillison.net/tags/llms/ 257 [35] https://simonwillison.net/tags/ai-assisted-programming/ 258 [36] https://simonwillison.net/tags/vibe-coding/ 259 [37] https://simonwillison.net/tags/coding-agents/ 260 [38] https://simonwillison.net/tags/parallel-agents/ 261 [39] https://simonwillison.net/2025/Oct/8/claude-datasette-plugins/ 262 [40] https://simonwillison.net/2025/Oct/6/openai-devday-live-blog/ 263 [41] https://github.com/sponsors/simonw/ 264 [42] https://simonwillison.net/about/#about-site 265 [43] https://simonwillison.net/2002/ 266 [44] https://simonwillison.net/2003/ 267 [45] https://simonwillison.net/2004/ 268 [46] https://simonwillison.net/2005/ 269 [47] https://simonwillison.net/2006/ 270 [48] https://simonwillison.net/2007/ 271 [49] https://simonwillison.net/2008/ 272 [50] https://simonwillison.net/2009/ 273 [51] https://simonwillison.net/2010/ 274 [52] https://simonwillison.net/2011/ 275 [53] https://simonwillison.net/2012/ 276 [54] https://simonwillison.net/2013/ 277 [55] https://simonwillison.net/2014/ 278 [56] https://simonwillison.net/2015/ 279 [57] https://simonwillison.net/2016/ 280 [58] https://simonwillison.net/2017/ 281 [59] https://simonwillison.net/2018/ 282 [60] https://simonwillison.net/2019/ 283 [61] https://simonwillison.net/2020/ 284 [62] https://simonwillison.net/2021/ 285 [63] https://simonwillison.net/2022/ 286 [64] https://simonwillison.net/2023/ 287 [65] https://simonwillison.net/2024/ 288 [66] https://simonwillison.net/2025/