My First Vibe Coding Experience
EngineeringAIPersonal Experience

My First Vibe Coding Experience

Winson Evangelis Sutanto

Winson Evangelis Sutanto

A Software Engineer whose best ideas come from doing absolutely nothing.

Hello, there!

This will be my first article written in this blog. In an era where AI took over the internet, it's hard to find authenticity in any writing. So I'll try to not use AI in my writings (except for grammar checking, maybe). I'll try to be as honest as possible with my writings.

So, I've been working as a software engineer for 3 years. I've seen how this generative AI takes over the world in a swirl. Back then, they say that AI will most like take over the boring repetitive jobs, and creative work such as art or problem task that requires problem solving such as software engineering are safe from AI. Ironically, now we see AI art everywhere and every giant tech company flex how much their codes are generated by AI. I've been using AI to code for like more than 2 years now, so I want to share a bit of my experience in it.

During the majority of my career, I believe that AI won't be replacing humans. Not in art, not in coding, not in writing. I've always see AI as a tool to help me not to replace me. When using it to write code, I guide the AI agent. Please add a new endpoint in file router.py, please add the following tables and columns in the database. AI works more like a typist for me where I give it my ideas and solution so it can write the code for me while I continue to daydream and thinking about the next step to do. But most of the time, my instructions are still quite technical. So this time I want to run an experiment. I want to try and create a whole running app just by pure vibe coding. Usually, I stick with Python or Java, bu this time I pick Next.js, a tech stack that I've never use professionally, this way my instruction will be high level instructions. The result? It's the platform you are looking at now!

To be honest I am quite amazed with the result. As I barely did any front end work, I was amazed when Claude Code one shot the UI part. Well, almost one shot. There are some error at the beginning. Sticking to the vibe coding formula, I just blindly copy and paste the error to Claude Code and it magically solved. Until I got to the back end part. Claude Code one shot the CRUD part, well it's mostly boilerplate anyway. Now come the interesting part, the chatbot and embedding stuff. At first the chatbot does not work. Turns out Claude Code hallucinate and call the deprecated Gemini model from a deprecated API. I tried to make it correct itself but I finally gave up and look up the available model myself from the correct Gemini API and send the list to Claude Code (didn't ask Claude to run the curl by itself because there is an API key in the curl). Even after I send the full list, somehow it decide to use older model when newer model exists. Obviously, I tell Claude to change to the latest model instead. The rest of the process ran smoothly except when I ask Claude to provide the migration command when running/deploying the application. It provide me the command but somehow he thinks manually running the command during each deployment is acceptable. Obviously this part is my back end engineer side showing up (can't help it).

I haven't check and review the code in details, but based on my experience so far I can say some conclusions (might change when I examine the code thoroughly). First, is software engineering is dead? Heck no. You still have to know the basics to use these AI tools. Can a non SWE ask Claude Code how to execute the database migration? Can a non SWE run a curl command to check the Gemini model list? Well, maybe..., but it will be harder for non SWE to do these kind of things. Not to mention about scalability and maintainability. At first, Claude Code write a lot of literals instead of putting them in a constant. Claude does not understand software best practices except it you tell it, and who knows these best practices the best? Also software engineering is not only about coding. When i was still teaching in the university, I always said that coding is the easy part. The hard part is knowing what to code. Claude can only code, you are still the one telling it what to code. Problem solving and creativity are more important than ever.

Honestly, I am quite impressed with how far this AI hype go. It helped me a lot too. Usually when I got a task, I think about the solution, I know which file and which line I should add/change. Then the typing part felt boring. Now I mostly skip the boring part, except some times when the AI hallucinates. But by no means AI will be replacing humans, at least that's what I believe to be true. I see AI as a speed amplifier, but speed is not what matters the most, it's direction.

In a world where people offload their thinking to AI, those who stands with his own mind will thrive.

Edit: I accidentally published the article twice and got a query error. I don't know why.

Edit 2: After reopening the edit page and publishing the article again, now it works. It's weird honestly.

Edit 3: I think the issue is because I accidentally pressed the publish button twice in the create new post page, so it created a duplicated article which cause an error(?) Honestly it should just disable the button after I click publish to prevent double click. Well, I guess AI won't take UI/UX job either.