This is the wrong view. It's more like "Soon, everyone will be able to go from idea to a prototype". IMO, there's a different value perception when people can use concrete things even if they are not perfect. This is what I like about end-to-end vibe coding tools. I don't see a non developer using Claude Code but I can totally see them using Github Spark or any similar tool. After that, the question is how can I ensure this person can keep moving forward with the idea.
You know how the average dev will roll their eyes at taking over a maintenance of a "legacy" project. Where "legacy" means anything not written by themselves. Well, there will be a lot more of these maintenance takeovers soon. But instead of taking over the product of another dev agency that got fired / bankrupt / ..., you will take over projects from your marketing department. Apps implemented by the designers. Projects "kickstarted" by the project manager. Codebases at the point antropic / google / openai / ... tool became untenable. Most likely labelled as "just needs a little bit more work".
These LLM tools are amazing for prototypes. Amazing. I could not be anywhere near as productive for churning out prototypes as claude code is, even if I really tried. And these prototypes are great tools for arriving at the true (or at least slightly better) requirements.
Prototypes should get burned when "real" development starts. But they usually are not. And we're going to do much, much more prototyping in very near future.
Software development doesn't occur in a vacuum -- it's part of a broader ecosystem consisting of tech writers, product managers, sales engineers, support engineers, evangelists, and others. AI coding enables each person in the org to participate more efficiently in the scoping, design, and planning phases of software development.
If people have to pay eg $100 for every of those prototypes I doubt they’ll be very popular. Sure it’s still cheaper than paying a dev but it will be expensive to iterate and experiment.
I think overzealous LLM hype is a sort of Gell-Man amnesia.
His projects were pure glue code. One was some data sets + some data visualization with charts + some map api. A few hours of work, it looked rather remarkable.
Our chat was specially hilarious since I take writing everything from scratch to the absurd level. His one trick was to know all the places online where you can ask your noob developer questions. He was working with a kind of imaginary token system where you get to ask a limited number of questions per month on each platform.
His queries were truly fantastic. A reasonable dev could answer them with little effort, sometimes the next guy would write out the glue code. He didn't ask for much.
13 seems some kind of magical sweet spot where we take the person just serious enough.
Sometimes people had questions about the API, he knew those inside out which was a hilarious contrast.
I asked him: What do you do when it stops working? The answer was to start from scratch. He posted the old glue code, explained it didn't work anymore and someone would answer the easy question.
The process was so completely alien to me that I'm not going to guess where the LLM's are taking us.
The point being made is that vibe coding is changing so fast that any investments you make today into learning is quickly obsolete tomorrow as someone puts out a new tool/framework/VSCode-fork that automates/incorporates your home-brewed prompt workflow.
It's like a deflationary spiral in economics -- if you know that prices will drop tomorrow, only the sucker buys something today (but because no one is buying today, that demand destruction causes prices to drop, creating a self-fulfilling doom loop).
Similarly: with LLM coding, any investment you spend in figuring out how to prompt-engineer your planning phase will be made obsolete by tomorrow's tools. Really your blog post about "how I made Claude agents develop 5 feature branches in parallel" is free R&D for the next AI tool developer who will just incorporate your tips&tricks (and theoretically even monetize it for themselves)
The argument here (get your pitchforks ready, all ye early adopters) is "we all just need to sit back for 6 months and see how these tools shake out, early adoption is just wasted effort."
That argument never held any water, and it's not what makes deflation problematic. You just have to look at the first 5 decades of electronics and computers, and how people kept buying those, again and again, despite the prices always going down and quality persistently going up.
The same applies to that argument applied to those tools. If you can use them to create something today (big if here), it doesn't matter that tomorrow tools will be different.
First app was to scrape some data using a browser. It did an excellent job here, went down one wrong path that it obsessed over (it was a good idea in theory and should have worked) and in the end produced a fully-working tool that exceeded my requirements and the UI looked way more polished than I would have bothered with for a tool I wrote for me only.
Second app is a DHT crawler. It has gone down so many dead ends with this thing. The docs for the torrent tools don't match the code, I guess, so it gets horribly confused (so do GPT, Grok, Claude, Gemini). Still not working 100% and I've wasted way more time than it probably would have taken to learn the protocols and write it from scratch.
The main issue is -- I have no idea what the code looks like or really how it works. When I write code I almost always have a complete mental map of the entire codebase and where all the functions are in which files. I literally know none of that. I've tried opening the code on the DHT app and it is mentally exhausted. I nope out and just go back to the agent window and try poking it instead, which is a huge time waster.
So, mixed feelings on this. The scraper app saved me a bunch of time, but it was mostly a straightforward project. The DHT app was more complicated and it broke the system in a bunch of ways.
Try again in 6 months?
That's a sign that you need to refactor/rearchitect/better-modularize the initial code. My experience is that with no existing code patterns to follow, the LLM will generate a sprawl that isn't particularly cohesive. That's fine for prototyping, but when the complexity of the code gets too much for its context, taking a day or so to reorganize everything more cleanly pays off, because it will allow it to make assumptions about how particular parts of the code work without actually having to read it.
Fixed that for you
I also hit the complexity wall and worked through it. LLMs are genius with arms that can reach anything but eyes two inches from the screen. As a metaphor, think of when a code base gets too big for one person to manage everything, people start to "own" different parts of the code. Treat LLMs the same and build a different context for each owner.
The key is to not get to a point where you lose sight of the big picture. You are riding a bronco - try not to get thrown off! If you do, ask the LLM to describe the structure of things or restructure things to be more consistent, etc. Get to a place where YOU understand everything, at least in an architectural sense. Only then can you properly instruct the AI forward.
Right now, I have a bug with my message queue. I didn't spend enough time thinking about the proper way to implement and test it. I guess I also didn't pay enough attention to the PR. But then, if I did, is it really vibe coding or classic software engineering while getting Claude to write for me with the added burden of reviewing it thoroughly?
The issue is that if a user sends a message to someone, quickly switches to someone else and sends a message, both messages get sent to the first person.
I'll have to figure out why it happens. My guess is that it's somewhere in the React app. Claude can't figure it out. What can I do to help it?
I feel like the AI companies are constantly getting ahead of themselves. The recent generation of LLMs is getting really good at writing or modifying code incrementally following a precise specification. But no, of course that's no longer good enough. Now we have agents who are as dodgy as LLMs were a few years ago. It's as if Boeing launched the 707 too early, got it to work after a few (plane) crashes, but then, instead of focusing on that, they launch the 747 also too early, and it also promptly crashes. Little wonder that people will be more preoccupied with the crashes than with what actually works...
If agents get so good that they overcome these obstacles then most mid tier companies dev staff is going to be a couple of people making sure the agents are online and running.
Vibe coding is just the canary in the coal mine.
And yes I know AI is marketed as more. But it’s still people’s fault for swallowing the PR and shipping crappy code then complaining about the lies. Stop deflecting responsibility for your work
The view I most agree with this discourse. That's why I am not enthusiastic about AI
You know you’ve hit a complexity barrier when your agent claims to have implemented something but it’s just.. missing. That’s your sign it’s time to clean things up - maybe simplify it to a pattern that funnels many things through one place. Then the models can work again.
This complexity reduction is a key step in engineering anything really. It makes for a healthier codebase.
And of course, incremental improvements in models will let them go further before hitting their own specific complexity barriers.
I truly believe there IS a durable role for “AI whisperers” of this kind. Folks who can tamp down the complexity as something is built, to keep it under the complexity ceiling of present-day models - and as the crazy pace of the industry lifts that ceiling again and again, folks who know where the limits are so they can work as fast as possible within them.
It’s a very different type of engineering driven by a very different set of constraints. It’s unfamiliar and it’s fascinating watching engineers grapple with it. But it’s here and we have no terminology for what it’s doing to our work, so some people are frightened while others get on with it.
Best you be among the latter.
Interestingly, I wrote something similar recently "Too Fast to Think: The Hidden Fatigue of AI Vibe Coding", https://www.tabulamag.com/p/too-fast-to-think-the-hidden-fat...
There seems to be something overloading our capacity as coders.
I remember from the days when watching TV. There were these preposterous commercials saying "23% more efficient than other toothpastes" or "33% less dandruff than a regular shampoo" or shit like that. How do you know what products do I use? How do you measure that? What skin type? No. It is just better. Trust us.
I mean, the financial backing in this sector is staggering. We know that already. It's a fact. There are also numbers. Billions if not trillions of them. What does Joe The Developer think all this kind of money goes to? Some of them, and not a small part, goes into marketing. Unless Joe still believes in the "build it and they will come" fake motto. Whomever has a stake in this will back it up, marketing it like crazy. Assume victory even in defeat as the old guy says. I was laughing hard one day when I saw Ilya Sutskever, laptop in hand, strolling the parks for a green meadow to work, develop ground-breaking ideas to save humanity! That's just marketing.
Liked your post. I don't think it matters (that much) that your native language is not English. We don't want to sound all the same by using AI to fix our grammar (ok, maybe this one, yes) or the awkward twists of sentences. Sometimes AI fixes them too good, leaving little room for some poetry into it.
Everyone is doing this sort of "better write some MCPs" thing, so that you can keep the LLM on the straight and narrow.
Well, let me tell you something. I just went through my entire backlog of improvements to my trading system with Claude, and I didn't write any MCPs, I didn't write long paragraphs for every instruction. I just said things like:
- We need a mock exchange that fits the same interface. Boom, here you go.
- How about some tests for the mock exchange? Also done.
- Let's make the mock exchange have a sawtooth pattern in the prices. Ok.
- I want to write some smart order managers that can manage VWAPs, float-with-market, and so on. Boom, here you go.
- But I don't understand how the smart orders are used in a strategy? Ok, here's a bunch of tests for you to study.
- I think we could parse the incoming messages faster. Read the docs about this lib, I think we can use this thing here. Boom, done.
- I have some benchmarks set up for one exchange, can you set up similar for others? Done.
- You added a lock, I don't want that, let's not share data, let's pass a message. Claude goes through the code, changes all the patterns it made, problem solved.
- This struct <here>, it has a member that is initialized in two steps. Let's do it in one. Boom, done.
- I'm gonna show you an old repo, it uses this old market data connector. How do we use the new one instead? Claude suggests an upgrade plan starting with a shared module, continuing towards full integration. Does the first bit, I'm mulling over the second.
Over the last four days, it has revolutionized my code. I had a bunch of things I knew I could do if given enough time. None of the above would stump me as an experienced dev these days. But it would take my attention. I'd be in a loop of edit/compile/test over every feature I've mentioned above, and I would be sure to have errors in either syntax or structure. At some point, I would use a pattern that was not ideal, and I'd have to backtrack and type/google/stackoverflow my way out of, and each step would take a while.
Now, I can tell Claude what to do, and it does it. When it fails, it's productively failing. It's closer to the target, and a gentle nudge pushes it to where I want.
This is very short sighted. The amount of research and papers coming out on AI is staggering. Maybe raw power gaining breakthroughs are rare, but you literally only need one to have exponential impact.
If you look back at the history of LLMs, its a never ending timeline of "well, they will never be able to do this" that have been proven wrong, going all the way back to the early 20-teens.
Seems like a very strange bet to make at this point in time.
I don't think the author is fundamentally wrong; but its delivered with a sense of certainty thats similar in tone to the past 5 years of skepticism that has repeatedly been wrong.
Instead of saying "vibe coded codebases are garbage", the author would be better served writing about "what does the perfect harness for vibe coded codebase look like so that it can actually scale to production"?
Retail store clerk was a medium skill/medium prestige job up through the 1970's and 1980's. You needed someone who knew all of the prices for their part of the store (to prevent tag switching), who could recognize what was the expensive dress versus the cheap dress, and remembered all of the prices so they could work quickly without having to look things up (1). There would be stories of retail clerks rising up to CEO, and even if you weren't that ambitious it was a career path that could provide a comfortable middle-class lifestyle.
Then the laser/upc system came in and hallowed out the career path. UPC codes could be printed in a more permanent way (don't need to put 10c stickers on every orange) and then it was just a DB lookup to get the current price. And there was a natural language description that the register printed so you could do a quick confirmation.
This quickly hallowed out and destroyed the career path: once the laser/UPC/database system meant that almost anyone could be an okay retail clerk with very little training, companies quickly stopped caring about getting anyone above that level, experience no longer mattered- or was rewarded with pay increases, and it created the so-called "McJob" of the 1990s.
Karl Marx had actually written about this all the way back in the 19th Century, this was the alienation of labor, the use of capital investment to replace skilled labor with interchangeable repetition that kept people from feeling satisfaction or success at their jobs- and the pay and career satisfaction of retail clerks in 1990s America followed almost exactly the path of skilled weavers being replaced by machines in 19th Century Birmingham.
Will that happen with SWE? I don't know. But it is a thing that preys on my mind late at night when I'm trying to sleep.
It gets the things they want to do done. No paying someone else, no asking for help on $chatprotocolchannel, no getting a friend to help. It's just there. It doesn't matter if it's ugly. It doesn't need to be monetized, doesn't need to be worked on by a team of people. It just needs to work... enough.
Vibe coding may not be for you. But vibe coding is so that we don't need to bother you for trivial things (like porting a 12 .c file X11/cairo program to a single .pl file cariro/gtk program).
once we figure out the right building blocks of applications, it will simply be inefficient to write code yourself.
perhaps a controversial take, but writing code is going away (99% of it).
What LLMs are poised to replace is basically the entirety of the liberal arts and academic disciplines, where output is largely measured on the production of language - irrespective of that language's correspondence to any actual underlying reality. Musicians and authors - fiction and non-fiction alike - are already witnessing their impending obsolescence in real time.