Vibe Coding Taught Me Software Engineering. The Hard Way.

Vibe coding

I usually opens my spreadsheets, notes and multiple apps to track my expenses, habits, and assets. All different apps, some are open source while others properitory. This was a habit I followed for years. I always needed to build something my own for my personal needs. So I decided to it a try. Not alone, but having AI tools as my partner.

The journey was not so sooth. But now I have three production apps running on my infra, designed and developed by me. First one is a personal life management system, second one an RSS reader to replace Feedly, and the third one, a notes tool. AI did the development. I did everything else, and “everything else” turned out to be the whole job.

That’s the part nobody tells you before you start vibe coding.

I’m not a developer. Techno-commercial background, PreSales, 15 years of translating business problems into technical asks, not writing them myself. So when I decided to build these apps instead of just using someone else’s, I expected the AI to close that gap entirely. It closed most of it. Not all of it.

Requirements first, or pay for it twice. I learned this on app one, expensively. I started prompting features before I’d decided on architecture, auth, backups, or where the thing would even live. Every late decision meant unwinding earlier code and unwinding costs both hours and tokens. By app three, I wrote the requirements doc before opening a chat window: security, scale, deployment environment, all of it. AI is genuinely good at helping draft that doc. It just won’t tell you that you skipped it.

You still have to know enough to steer. Not write the code. But to decide what gets built. Postgres or SQLite. Self-hosted or managed. These aren’t AI’s calls; they’re yours, and a wrong one compounds. I spent real time understanding trade-offs before I trusted my own prompts to describe what I actually wanted.

Debugging is where the illusion breaks fastest. The AI throws five possible fixes at a broken build. Two make it worse. One works but you won’t know which until you’ve read the logs yourself and given it better direction than “still broken.” This part never got automated for me, across any of the three apps.

Git from day one, not a best practice here, closer to a survival requirement. One prompt gone sideways can erase an evening’s work, and it will happen at least once.

And then there’s deployment, which I’d mentally filed under “the easy part” and was wrong. Server, Docker, Coolify, Traefik, SSL, environment variables, building the app was maybe half the actual project. If your stack has native, one-click deploy and you use it, you got lucky. I didn’t, for two of the three, and that’s where most of my “debugging” hours actually went.

None of this is a complaint. Vibe coding is the first time someone with my background could run the entire software lifecycle solo from requirements through deployment and that alone was worth the weeks What it doesn’t do is remove the need to think like an engineer. It removes the need to type like one.

If you’re non-technical and expermiment with AI like I did. You don’t need to code. You need tokens, patience, and a willingness to spend some time. But the result is, you will be able to produly use something you have build your own.

Previous Article

CDP Deep Dive - Journey/Orchestration Layer 

Subscribe To My Newsletter

Subscribe to our newsletter for the latest trends, expert tips, and actionable strategies in AI, Presales, and Digital Marketing. Get exclusive content straight to your inbox—no spam, just value! ✅
Pure inspiration, zero spam ✨