Skip to main content

Vibe coding - The democratization of software development

· 4 min read
Wences Martínez
Product Engineer

The term 'vibe coding' has been gaining a lot of attention lately. It has been trending in recent weeks, especially after a tweet from Andrej Karpathy, former Tesla AI director.

For those unfamiliar with it, vibe coding is a way of building applications where developers or even non-technical users describe what they want in plain language, and AI generates the code automatically. Instead of manually writing code line by line, users delegate all the responsibility of coding by interacting with an LLM (like ChatGPT, Claude, or Sonnet) and only refining the output as needed.

An increasing number of tools are making it possible for anyone to build applications without coding or technical expertise. These platforms, often built on top of LLMs, enable individuals to develop digital solutions while reducing time and development costs.

This is changing the software development paradigm, don’t you think?

Eventually, people will be coding in their native language, rather than a programming language.

When AI started booming around 2021-2022 I was very skeptical about using it for coding. My biggest concerns by that time were:

  • I didn’t want to rely on AI for problem solving, I wanted to go through the entire process myself to avoid limiting my growth as a developer.
  • Depending too much on AI could weaken my critical thinking in decision-making.
  • I wasn’t sure if I could trust AI to provide the best solutions, or whether they followed performance and security best practices.
  • I was unsure about how the IA handle my application's sensitive data, given the potential risks related to privacy and confidentiality.

For some of these reasons, I didn’t integrate AI into my day-to-day tasks until the last few months. While I still have those concerns, I’ve been using Cursor as an IDE which has different LLMs built-in and while I often run into contradictions or inefficient solutions in AI-generated responses, my coding speed has drastically improved. That’s probably what I like the most, the AI-powered autocomplete, which understands the project’s context, makes development significantly faster.

That said, I still stick to follow as many best practices as I can and I always ask myself a few key questions when using AI to solve a problem:

  • Do I really need AI for this? Could I solve it myself?
  • Why didn’t I come up with this solution myself? How can I improve my problem-solving skills?
  • Is this the most efficient solution? Does it fit the architecture patterns I follow? Is it a modular solution?
  • What does the language/tool’s official documentation say about this?

At Resizes Dash, we think vibe coding in its purest form can be useful for things like prototyping (POC), making simple apps, or focusing on functionality and time-to-market in the short term. But when it comes to building strong and reliable architectures, solid programming knowledge, experience, and critical thinking are crucial qualities that AI has but isn’t quite good to rely on (at least for now). We do suggest using AI to speed up development, fix errors, or find alternative solutions, but relying on it for all your code development can stop you from growing as a developer and could lead to a point where the state of the application becomes unmanageable or reaches a point of no return.

Sometimes it’s best to let the LLM handle the small details while we focus on the big picture.

An example of this could be seeing in our product, Resizes Dash, where the team is taking advantage of Amazon Bedrock service and its different foundation models to get the consumption of Cloud resources and calculating a carbon footprint based on AI inputs from power consuption and instance capacity.

So, in the end, we think developers should always be in charge of making sure the code follows best practices, is scalable and stays secure. AI should be a tool to help and support developers, not take over. It’s important to use AI to make your job easier, but still keep your own critical thinking and knowledge in the process.

Right now, most LLMs generate code based on patterns. They lack intuition and strategic decision-making, meaning their solutions often don’t involve real critical thinking.

I encourage everyone to find their own vibe coding style. Without a doubt, AI is the present and the future of software development, but as software developers we should never lose our ability to think critically. More often than not, that’s what truly makes the difference, not just in writing code, but in evolving a product in the most efficient way possible.

AI isn’t here to reinvent the wheel, it’s here to make you more productive.