Back to blog
5 min read
Vibe coding

Vibe coding have been a hot topic in the past month. It quickly become the meme and joke material on all platforms. I will try to share my humble thoughts on it.

What is it?

Vibe coding, coined by Andrej Karpathy, is a concept of programming with a heavy help of AI. Instead of manually writing the code, testing and debugging it, programmer instead asks LLM to do that.

What others think

There have been posts a lot of posts on the topic lately. Some authors laugh even on the concept of using the LLMs to write the code. Some authors glaze it over and hype how 90% of programmers will be replaced by AI in 6 Months.

Then, there are many people in between. Some are using LLMs to aid with the code, but not consider that “vibe coding”. Some are vibing through small weekend projects.

My thoughts

I will try not to reiterate the most common thoughts, predictions or jokes. I am not overly-optimistic about AI-based programming, but I am also not discarding the concept as a whole.

Developers focus more on the product.

I know that first-hand, being developer first (especially backend developer) it is insanely hard focusing on the product and not the implementation. Even if you think you are good at it, you are probably wrong. I have seen teams without the designer, or with passive or technical product owner producing web apps which are basically slightly fancier database guis. When I work on my projects I try very hard to escape CRUD-per-model pattern. Of course it feels the most logical way to structure the app - have a “create” page for every entity type, and then a dashboard with a table for every entity. But that’s not necessarily how users will want to use that. User experience and user flows are rarely connected to technical design.

So vibe coding actually is great for this! Instead of focusing on implementation details and technical design, vibe coders focus on how the product should work and feel, and the AI will handle the rest. Product thinking is a very, very hard skill to master!

Code is simpler

That’s probably a controversial take, but hear me out. Not going to argue that currently LLMs produce better code. No, no, that’s a fact that currently the quality of the code is low. Generated code is usually full of bugs, hard to read, stylistically not good, not secure, etc.

But! It is simple. I am yet to encounter a LLM which given the complex task says “fuck it, let’s change the architecture completely and build tens of abstractions over abstractions to solve it”. In enterprise environment it is very common to overthink the problem and solve it with big guns. Some forget how to count that low, how to build simple web api without bringing in CQRS or style a button without tailwind or css-modules. Of course, all those practices, complex patterns, abstract abstractions have its time and place, but nobody’s vibe coding sharded realtime bigdata ERP (yet).

LLMs produce bad code, but definitely simpler one. The button is not becoming red? Just !important it! External API throws unexpected error? try catch that and done. It works, and works fast.

And it’s just easier to support bad but simple code, rather than good but complex one.

Low entry point

It’s great that now more and more people have access to coding. As a ex-comp-sci student I know firsthand how demotivating it is to study the programming language for weeks, only to be able to do some basic sorting algorithm or some poker game, or whatever.

Being able to immediately get a somewhat working product is a superpower! If the barrier to enter programming is low - more people will come, more people will build their dream startups, and some will probably get some traction. Some people will stick around and learn more of good programming and become experts.

And no, it won’t make us worse programmers, the same way compilers or frameworks didn’t.

Creative influx

Low entry barrier means more diverse people will write the code. A lot of newcomers, who have no experience with “correct way of doing” or “best practices” will inevitable come up with their own creative solutions. Most of those solutions are trash, but I believe some could also be fun and novel enough to stick around.

We will probably go beyond modals, scrollbars, cards, dashboards and landings, and I am very excited about that!

There also probably gonna appear more fun and smaller tools in place of existing expensive behemots. Like imagine, why would I pay expensive Photoshop subscription if only thing I do is put watermarks on my photos. I’d rather vibe-code (or even use someone’s) simple tool which will do it for me, for free.

What’s next

I am very excited for the future! I truly believe LLMs, AIs, vibe coding and other is a great net-positive for the industry. Vibe coding will definitely change (or at least affect) how we approach software development, for better or worse.