Vibe Coding – But not what you think!

Vibe Coding is not what you think it is. We have paradigms made for vibing with code!

Photo by Jason Goodman on Unsplash

It’s not math, it’s not logic — it’s just thinking.

All the cleverness comes after the actual implementation of our idea.

What would that 0.2 sec improvement from using a stream instead of a for-loop do when the code doesn’t even do what you want it to do?

In the corporate environment, you’ve probably been to meetings where they draw boxes and connect them with lines, calling it annotations.

When in reality, they are simply restricting the vibes of actual coding … which is thinking!

A true story of vibing with code

Photo by Obie Fernandez on Unsplash

While working on developing a reusable framework for an internal tool, I had the most surreal experience of vibe coding.

The normal procedure started with me asking for the requirements (functional and non-functional).

Then, I went ahead with writing the use-case diagram.

Then the class diagrams to lay the Low Level Design.

Finally, the implementation part came in.

But sadly, I struggled to get my foot out of the door when it came to actually writing working code.

But why was that?

Simply because I had prematurely restricted myself to the boxes and the lines and the constraints of making a working model perfect.

Then, as any smart person would do, I asked GPT to help me write the code.

And, without any wonder, it did!

So, did it solve my problem?

Sadly, no!

The next day, the lead clarified and new requirements came in, and now the meaty part of the design had to change again.

I said “Sure” and went back to the code.

Looking at the implementation, I got stressed. I had not written this code and neither did I know how to incorporate the new design.

Then I thought, why don’t I change the design again and give it back to GPT?

And that’s what I did. And it worked the second time.

But! Then the third meeting happened, then the fourth, then the fifth, and so on.

Each time I went back scratching my head … what, why, how!

Finally, I had enough of this methodical way of working! I wanted freedom.

I wanted to actually code so that I had more power to change it freely and also clearly mention the parts which might be poor design choices.

And that’s what I did next. I started coding … manually, typing, chugging thoughts and converting them to code, like we used to before 2021!

This is where I realized: Coding is a vibe and not labor.

I started by converting my ideas to code, one by one. Adding classes and methods as I needed them. In 3 hours, I had enough code written that was 100% fully modifiable and suited to my needs.

The beauty of this practice was that now my design document reflected what was possible from the code, and not the other way around!

I truly now believe that coding and thinking cannot be thought of as two different things.

Coding is an abstract form of thinking where you are restricted to the constructs of syntax; however, it only takes you a few years to master the limitations of this beautiful thing and create whatever you wish and desire.

Here are two paradigms that were developed to support real-world code vibing.

Test Driven Development

TDD, or Test-Driven Development, is a popular paradigm where I see that design is defined by implementation first.

For those who don’t know, TDD is a paradigm where you first write the test for the piece of code you’ll write in the future and then write the actual code.

The tests in TDD are a hallmark of thinking about what could happen first and then writing the actual implementation.

It is more of an assertion over the fact that if something is possible first in the code, it has to be tested and proved and then written.

If you’ve done TDD before, you’ll agree that it also requires a free flow of thoughts … vibing with the code.

Things like TDD don’t hold much value when you use tools like GPT, because the entire premise of TDD is to think of the possibilities first.

Behaviour Driven Development

Similar to TDD, we have BDD, or Behaviour-Driven Development.

Where TDD forces you to think for writing code, BDD forces you to think of human nature for writing code.

A natural tendency of human nature and its relationship with code is something which cannot be explained with a mathematical equation.

This requires clear thinking and drawing parallels with real life.

This too is a vibe.

Is Coding with GPT really a vibe?

With the rise of tools like GPT, it’s easy to think that we can skip the thinking part and just let the AI do the heavy lifting.

But is that really vibing with code?

When you use GPT to generate code, it feels magical at first. You give it instructions, and boom — you have working code in seconds. But the real question is: Do you feel connected to the code?

Most of the time, the answer is no. You become more of a coordinator than a creator. You start depending on prompts and generated snippets instead of converting your raw thoughts into code directly.

True vibe coding is when your mind and fingers are in sync, and you’re translating ideas into reality in real time. It’s when you know exactly why something works and why it might break.

GPT is an amazing assistant — it can help you brainstorm, refactor, or unblock yourself. But it should never replace your own flow of thoughts. It should amplify your vibe, not replace it.

If we rely on GPT, we lose that powerful feeling of turning abstract thoughts into something tangible with our own hands. And that, to me, is the real magic of coding.

Subscribe to my newsletter today!

Share it on

Leave a Reply

Your email address will not be published. Required fields are marked *