Don't Bet Against Vibe Coding!
TL;dr If you're not using AI, you're living in the past
There’s no doubt that AI has improved more in the last three years than in the previous sixty-five. (Yes, AI has been around that long!) Anthropic, Google, OpenAI, Mistral and others have made huge strides in developing Large Language Models (LLMs) which are now able to ingest and manipulate data in ways that provide a massive productivity boost in a wide range of tasks.
One area that’s gotten a lot of attention in recent weeks is vibe coding, meaning using AI to program. With that in mind, let me share a couple of experiments and then try to answer a few questions:
What is vibe coding like?
Does it live up to to the hype?
How will this change the way programmers work?
What will be the impact on SaaS companies?
Should you wait for the dust to settle or start using AI now?
Last summer, I decided to dip my toes into AI-assisted programming. I hadn’t programmed in years decades and my skills were rusty. Worse than that, I found the current programming tools overwhelming. There’s a lot of work required to get a modern IDE set up and integrated with a version control system to deploy in the cloud. After a few frustrating hours with more questions than answers, I gave up and decided to revert to a simple 1980s workflow.
Vibe Coding - Experiment 1
I booted DOSBox and Turbo Pascal 4.0 on my Mac and was ready to go. I’d written a shareware five-card Video Poker game for DOS and Windows back in the ‘90s called Tahoe5. Unfortunately, I’d lost the source code decades ago. But I was able to find an old DOS executable file which served as my spec.
I programmed a barebones text mode app, dropping into ChatGPT occasionally for assistance. Sometimes it would write good code, sometimes, not so good. Then I’d try to get ChatGPT to fix the not-so-good code and it usually made things worse. As a result, I wrote most of the code by hand.
I knew I’d written a woefully inefficient shuffle algorithm back in the day. So I asked ChatGPT to write a better one. It came up with the Fisher-Yates algorithm as published by Knuth in The Art of Computer Programming. It’s seven lines of coding elegance. If you’re going to steal, steal from the best!
I also asked ChatGPT to create some music routines for winning and losing hands. It responded quickly with code that looked good but didn’t actually, you know, compile. But it was easy enough for me to fix. Turbo Pascal compiled at 27,000 lines per minute on an 8MHz 8080 processor, so no problem!
I got the basics working quickly. Over a couple of days I wrote a more colorful user interface. It was about 600 lines of code and compiled to a 16k executable file in one second. Note that’s 16 kilobytes, not megabytes! It’s smaller than most icon files.
No one runs DOS anymore, so for laughs, I shared a screenshot with friends. It was useful to have some AI assistance, but it didn’t blow me out of the water. I was still doing most of the work.
While I would have liked to have built a mobile version of Tahoe5, the prospect of learning Swift, iPhone’s core graphics layer and Xcode seemed daunting. I filed it away under “Later” meaning sometime after I clean the garage, learn to play piano and publish a graphic novel.
Vibe Coding - Experiment 2
Then last week, I had an afternoon free and I decided to try the latest vibe coding tools with a buddy. I’d heard good things about Claude Code. OpenAI had just released Codex, which is a desktop app that automatically handles much of the donkey work by integrating with an IDE and a source code repository. It connects ChatGPT directly with VS Code and GitHub radically lowering the learning curve. That sounded good to me!
With a bit of guidance, I started typing prompts into Codex. I had it create a new VS Code project. Then I had it build a PRD for a five-card video poker game. As is often the case, the AI was more verbose than necessary. I asked it to revise the PRD based on my working Turbo Pascal code. Then I said to go ahead and build the app.
At this point, my expectations were low. The normal software development experience is that nothing works the first time. You have syntax errors. Or configuration errors. Or something that is so fundamentally broken you wonder why in God’s name you’re even working with these lame-ass tools and start to think that maybe writing a novel would be easier.
But after a couple of minutes of chugging along, Codex said it was done. I fired up a localhost web server and… It worked first time!
I don’t think I’ve had an application of greater complexity than “Hello World” compile and run out of the gate. I was impressed and a little shocked.
It was a double rainbow moment. What does this even mean?
And more importantly, how do I get AI to fix the graphics? They look terrible!
I asked Codex to create a nice looking card back, but all its attempts looked like Figma during a wi-fi outage. So I did it last-week old school, meaning I opened a separate Gemini chat and asked it to create a card back and then edited it in Pixelmator Pro. I pulled some face cards off the Interweb and added those as assets to the VS Code project and told Codex to use them as appropriate.
It took a dozen more prompts to improve the layout, adjust the graphics, change some fonts and of course, make the logo bigger! It worked well, with resizable panels and graphics that scaled for different size browsers. Total time: less than an hour!
Hoo-boy! This wasn’t just a mock up. It was a fully functional application that looked better than I could have written. I didn’t even read the code until it was finished.
There were about 700 lines of JavaScript and about the same in HTML and CSS files. I’m barely literate in JavaScript, so I asked ChatGPT to rate the code. It said it was solid hobbyist level code! That seems right to me.
ChatGPT didn’t think the code was enterprise scalable, which is what every senior developer says of a junior programmer’s code, so that’s fine. For a real world multi-user application, there’s more work involved and some of that may go beyond what vibe coding can do today. Real programmers do the hard work, not just the easy stuff.
The only problem was the layout was sub-optimal in a mobile browser. The cards were too skinny and some of the graphics were squashed.
I dreaded making the necessary changes for mobile knowing how this sort of thing usually goes. You’ve got something working and you know it has to change. But before you come out the other side, it’s going to go through several phases of broken.
So the next day, I told Codex to create a new version, in case I had to revert back. I gave it three prompts to rearrange the panels in mobile portrait mode and remove some unnecessary information regarding keyboard shortcuts which weren’t needed. That was it.
I told it to push and deploy the changes.
Again, it worked perfectly. Codex didn’t even break a sweat.
Just because refactoring code is an error-prone process for humans doesn’t mean it’s difficult for AI. After all, there are tons of code it can draw upon to optimize for mobile browsers. It’s not rocket surgery.
At this point there were a few hundred more lines of code. But I’m not working at that level anymore. I feel slightly guilty about this. What if the code is inefficient? Should I be embarrassed by Codex’s hobbyist level coding skills?
Vibe Coding - Experiment 3
Astute programmers and AI skeptics might say that my AI experiment wasn’t a challenge since I gave Codex source code to work from. To that I say, have you ever tried to translate Pascal code to JavaScript? It’s still work!
I remembered I had also coded a DOS and Windows blackjack game called Tahoe21. But I hadn’t rewritten it and there was no source code spec to work from.
My wife was out of town, so dedicated programmer that I am, I heated up some leftovers, fired up a documentary on Mel Brooks, and proceeded to half-ass vibe code my way to video blackjack.
I created a new chat thread in Codex and asked it to create a terse PRD for a blackjack game with the same style and play as Tahoe5. After a few minutes and some futzing with GitHub, I had another working prototype.
It had buttons for Double and Split. I had heard those terms but didn’t know enough about Blackjack to implement them back in the day. (Cough, I also had limited screen real estate.) I asked Codex to add the rules for Double and Split into the PRD in language a novice would understand. Then I tested those features. To no one’s surprise but my own, it all worked.
I spent a few more hours optimizing the user interface and screen layout. While it is unlikely you will ever have to deal more than five cards without busting, it can happen. So I gave Codex some prompts to re-arrange the cards when you get four or more. You can display up to eight cards on a normal desktop browser and six on a mobile. (Theoretically getting eight cards occurs only once ever 75,000 times, but it did happen a few minutes after I explained to my buddy the unlikelihood of this event. I’m still reasonably sure the AI is not listening.)
Codex handled it, letting me know this is called card fanning. Which just goes to show, it knows more about this stuff than I do.
Without much guidance the AI coded quite a few things on its own:
Double and Split logic
Randomized different musical tones for winning and losing hands
Randomized taunts when the player runs out of money
Secret test mode with different scenarios
To me the Secret Test mode was the most impressive. It devised (er, lifted) a test sequence that would run through various hands (Split aces, Blackjack, Dealer bust, Player bust, etc.) It can also be used as a cheat mode.
While the scaffolding of the app was solid, much of the user interface was weak. Most of the text in the app was more of placeholder quality than polished text.
All of the status text had to be rewritten
The About and Help screens were amateurish
The layout of Split hands worked, but was cluttered on a mobile device
Some of the screen drawing was off by a few pixels causing the cards to jump
Layout of cards was too squashed
Optimizing for mobile required extra work as there’s less vertical space to accommodate the dealer, player and split hands. It required some more prompting and testing, but it eventually worked. Next thing you know the documentary’s over, my dinner’s cold, and it’s past 1am.
So it turns out vibe coding is a lot like coding. It’s fun in an addictive way.
PSA: Don’t Go Into Production!
For anyone thinking of going into production with AI generated code, please don’t. You should have a human review all code before going live. You don’t know what might be in there that could do bad things. (You wouldn’t know about the Secret Test mode in my games unless I told you or you reviewed the code.) You can bet that bad actors will be using AI in lots of creative and dangerous ways.
So what do I make of all this?
First of all, vibe coding is terrific fun! Apps like Codex make programming much more accessible. They take a lot of the pain out of using VS Code, GitHub, etc.
I reckon vibe coding is between 10x - 100x more productive. It’s like to moving from machine language to a very high level language.
In the 1980s when computers had limited memory, there was still occasion to write assembly language that could be more efficient than a compiler would generate. But ten years later, outside of writing device drivers or video games, no one bothered. Compilers got better, memory got cheaper and CPUs got faster.
We’re now transitioning from the plateauing Moore’s Law (chip density doubling every 2 years) to Huang’s Law (AI performance doubling every six months.)
So things should only get better from here.
But…
Just because I can vibe code a poker game in an hour doesn’t mean it’s the end of software development. That said, the nature of programming and the skills we need going forward are changing fast.
Much like the move from assembly language to high-level languages enabled more people to program, this will do the same. We might enter into a Jevons paradox, which causes demand for apps to rise because the cost of implementation is so low. Who knows, maybe we’ll see a flood of cheesy video poker games along with a slew of niche software applications.
So What Happens Next?
As Niels Bohr (or perhaps Yogi Berra) said: it’s hard to make predictions, especially about the future! But it’s clear that AI is a fundamental change in computing that will have massive impact on the tech industry, white collar work, education and society.
The change is likely bigger than the impact of the internet. But what makes it especially tricky is it’s coming 10x faster.
Twelve months ago, you could point to AI hallucination and say it’s not ready for mainstream use. I don’t think that’s the case anymore. Even six months ago vibe coding required a lot of manual editing. Today, not so much.
Normally, when a new technology comes in and automates or eliminates tasks, it also creates opportunities for new roles. So while coding an app can now be automated, surely product management, design and testing will become even more valued human skills. Unfortunately, I’m afraid it’s turtles AI all the way down. There’s no reason to believe that AI won’t do a better than average job on these tasks in the near future. If you’re not well above average, your job is toast.
When things are changing rapidly and there’s a risk of massive disruption I believe it’s better to be a steamroller than a bystander on the pavement.
If you’re not using AI in your work, now would be a good time to start. It may be tempting to wait until things settle down. But “wait and see” leaves you in the worst possible place. Better to start working with today’s less-than-perfect tools so you develop an understanding and help shape the future.
For those early in their careers, this is an opportunity to become an expert. No one has 10 years experience in vibe coding. Heck, almost no one has six months experience! So if you start now, you will have more experience than most. Someone will become the “AI expert” in your department. It may as well be you.
This is the one time that being young works to your advantage. You’ve got less to re-learn and (hopefully) less resistance to change. At the very least, schedule a few days every month to try out the latest tools by using them on real projects. If you have to pay for ChatGPT or Claude out of pocket, it’s a cheap investment in building expertise. Luck is what happens when opportunity meets preparation, so make sure you do your part.
Not only is AI getting better, but humans are also getting better at using AI. So share best practice tips with colleagues. If you’re not sure where to start, fire up ChatGPT, tell it about the work you do and then ask where you can use it. If your company doesn’t allow you to use AI, do it on your own time, on your own dime. Then get a new job as fast as you can.
As the saying goes, AI might not take your job, but someone using AI certainly will. You don’t want to be the old man in their front yard yelling “But the old way is better” when the whole world is moving to AI. And believe me, they are moving.
Does this mean the end of apps? Will we just have one Super Agent that runs everything in some Minority Report pre-cog app with a massive touch screen? Maybe not. But I bet there are teams at Google, Apple, Meta and Amazon that are trying to figure that out.
To the extent that life is modal, there will be ongoing desire (if not need) to have software applications that do specific things. Yes, more and more apps will have an AI agent user interface or at the very least, AI behind the scenes.
Will companies all code their own Enterprise applications? That’s a scenario many people are wondering about. I think it’s unlikely. For companies with a lot of data in the cloud or a SaaS app, migration is a massive undertaking. But certainly there will be price erosion and margin compression. If you’re paying a few hundred bucks per employee for certain productivity apps, that may still be worthwhile.
Some companies will decide that $100 a month per person for Salesforce (or realistically, Salesforce + Google Apps + Zendesk + Hubspot + dozens of others) is just too much and they’ll vibe code their way to something. Building a prototype is easy. But building in-house applications also means a commitment to ongoing maintenance for the rest of your life.
If you vibe code a “quick and dirty” CRM app, expect another ten feature requests from every user who has an opinion. Building internal apps is like giving someone a puppy… you still have to take care of it!
More likely, I think we’ll see new competitors come out with quite decent suites for lower prices. Maybe Salesforce isn’t worth $100 per user per month. But is a fully functional CRM worth $50? Or if it’s the last day of the quarter how about $25?
If you’re a in software company more than five years old and not “native AI” you should assume there are teams vibe coding a new competitor ready to launch. Better for you to build an internal AI tiger team to reinvent your business than get disrupted from the outside. Executives of every function (Sales, Marketing, Finance) need to get hands-on experience with AI to understand what it can do in their field. Showcase the early adopters in your organization so that everyone benefits from their learning.
The Hybrid Opportunity: Augmented AI
The last time there was a hint at this kind of disruption was with open source software, which is essentially free, in the early 2000s. Companies like Red Hat, MySQL and JBoss were able to disrupt incumbents by offering good quality with a promise of reliability and service for up-to 90% less than the big guys.
Somewhere between the destruction of SaaS multiples and the world of super agents that do everything, there’s an opportunity for companies to manage the new thing through a combination of AI + people. Call it hybrid mode, human-in-the-loop or Augmented AI. For many companies it may make more sense to pay someone to manage their AI applications and infrastructure than to do everything in house.
Firms that can manage the complexity of AI for their clients and distinguish themselves by delivering great service will have an opportunity to thrive. Smaller companies are almost always able to do this better than larger incumbents.
It’s an exciting time and it’ll be interesting to see a new crop of companies that leverage the power of AI to do great things. Who’s in?
Apologies for the long post! What are your experiences with AI? Are you vibe coding? Creating new proposals? Generating designs? What’s working? Leaving a comment!
Two other great article on this subject: Matt Shumer’s Something Big Is Happening describes the recent acceleration of AI and Stephen O’Grady’s Besieged has a nuanced discussion of the build vs buy dilemma and the economics of AI. Both are worth reading.
Click to try the Tahoe5 and Tahoe21 applications. Source code is available on Github. If someone wants to build a native iphone or Mac version of these, let me know!










Z's Q: What is vibe coding like? My A: Depends on which tools you try. My answer is to continue to test all of the vibe coding tools and "traditional and modern" IDEs that have integrations to AI technologies.
Z's Q: Does it live up to to the hype? My A: It's never good to follow the hype. Best is to see how technologies and tools can enhance your development skills and target projects.
Z's Q: How will this change the way programmers work? My A: technologies have always been advancing and software engineering has continued to advance (methods, modeling, patterns, agile, CI/CD, modern AI...)
Z's Q: What will be the impact on SaaS companies? My A: modern architectures, solutions and companies will continue to be impacted in real time by technological advances.
Z's Q: Should you wait for the dust to settle or start using AI now? My A: watching the parade pass you by will keep you as part of audience on the sidelines.
Here's a blog post about one of my recent experiences in the use of "modern AI" for development. It's 2 months ago and already at least a year out of date :(
David I.
This is a realistic and very balanced article. I wish more people were writing about AI like this, and spending less emotional energy on the hype or doom of it all.
Your point that it is a higher level abstraction rings true for me. Almost all of the code I’ve shipped in the past year has been with the help of AI. Knowing what to build is important, and providing the right guidance to the LLMs as well if your goal is maintainability / scalability.
I don’t see SaaS dying anytime soon. Several of my own SaaS subscriptions I would say have doubled in value in the past month as they’ve released MCP features which let my LLM of choice programmatically read from them or make updates / changes to them.
For instance, this week my LLM evaluated my onboarding flow in code, then instrumented events for us to track in analytics, and once I shipped those events, it created an entirely new dashboard in my analytics platform to track the funnel metrics for onboarding to identify bottlenecks to tackle next. All in about 15-20 minutes of hands on work that I know would have taken weeks of cross team coordination at previous companies.
Im doing similar things with my email marketing platform and my SEO platform as well.
I don’t know where the future takes us with these new capabilities, but I know for myself that I am doing increasingly sophisticated work in areas I just would have skipped for lack of time before. I think smaller, faster moving teams have an even bigger edge over incumbents than ever before if they can leverage these kinds of abilities.