davideisinger.com

My personal website
Log | Files | Refs | README

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/