SYSTEM / APR.2025
17 years of development later, my advice and thoughts on Vibe Coding (coding with AI)
I wrote my first lines of code at 14, in a simple text editor. Today, at 32, specializing in artificial intelligence, I see a new way of programming emerging that is upending my habits...

I wrote my first lines of code at 14, in a very simple text editor. At 32, I work on artificial intelligence, and vibe coding has already changed some of my instincts as a developer. The idea is to describe to an AI what you want to build, then have it produce some of the code. Here, I share my experience after 17 years of development, with enthusiasm, specific examples, and some very practical reservations.
Vibe coding explained simply
Vibe coding means coding with an AI using natural-language instructions, directly within an intelligent development environment. Instead of writing every line by hand, I describe the expected result. I can ask, for example, for a web application that does X. The AI-assisted IDE produces a first version of the code. Recent tools such as Cursor already do this very well. You describe the application you want to create, the platform generates the code, and then it also helps fix certain bugs automatically.
The term was popularized by Andrej Karpathy, Tesla’s former director of AI. For him, vibe coding means letting the AI carry you along, almost to the point of forgetting that the code exists. The practice departs from traditional development. You read the AI’s suggestions, clarify your intentions aloud or in writing, run the result, then adjust. Sometimes you also copy and paste. And often, it works.
This approach significantly lowers the barrier to entry for software development. Today, a beginner can create a working application in an hour or two by talking to an AI assistant in an IDE. For someone who started with very simple editors, the difference is quite dizzying. Silicon Valley’s ambitions around code automation are becoming much more visible in everyday tools.
From traditional editors to intelligent IDEs
When I started coding as a teenager, I used simple editors, then traditional IDEs such as Eclipse or Visual Studio. For 16 years, my main tool was PyCharm. It was solid and reliable, with basic autocomplete, syntax highlighting, and a few automatic refactorings. The developer kept full control over execution. You had to know the language, read the documentation, and search Google or StackOverflow whenever a bug blocked the project.
Tools advanced in stages. VS Code made things more comfortable. Linters became more effective. GitHub Copilot and TabNine then began suggesting code automatically. I experienced the clearest shift recently with IDEs that integrate an assistant, such as Cursor, which I adopted a short while ago. There are also solutions such as Bolt.new, Windsurf, Codeium’s AI IDE, and even a Firebase Studio geared toward AI-assisted development.
The IDE now goes beyond completing a line. It understands an intention. In Cursor, I can write in natural language, create a User class with JWT authentication. The tool generates the corresponding class, sometimes the entire file, in a few seconds. The result still needs reviewing, but the difference from traditional autocomplete is enormous.
This development is visible across the industry. A 2024 survey indicates that 75 % of developers have already tried an AI tool for coding and that 82 % use it regularly to write code. GitHub Copilot has more than a million users. These assistants are gradually becoming as natural a part of a developer’s workflow as compilation or version control.
We have gone from I code everything myself to I code with an AI copilot beside me. After using these new intelligent IDEs, returning to old habits becomes difficult. When the tool understands the request well, the sense of fluidity is very strong.
Multiplied productivity, from a perceived x30 to measured gains
The productivity gain is the first shock. On some tasks, I sometimes feel I have become a super-developer, able to produce in a day what would have taken me a month. On routine tasks, it can feel close to x30. The IDE does in 2 minutes what I would have done in an hour. This is a favorable case, of course, but the effect becomes very noticeable when everything falls into place.
One simple example comes up often in my daily work: creating the structure of a new backend microservice. Before, I would create the files, write the REST API boilerplate, configure the database, then wire up the first routes. Now, I describe the service in a few sentences, with the main entities and expected endpoints. The assistant generates a good portion of the skeleton. In a few minutes, I have something running. Before, the setup alone could take me the whole morning.
This x30 remains a subjective impression in ideal cases. More cautious studies report, for example, development that is 2 times faster on average thanks to AI, or 55 % time savings on programming tasks in research by Microsoft/GitHub. Even doubling productivity changes a great deal at the project level. In my daily work, I sometimes complete entire features with the feeling that I have a very competent colleague, available 24h/24, who codes extremely fast.
There is also the mental ease. I spend less time on silly bugs or finding the right syntax for a function. AI absorbs some of the load, leaving me more energy for architecture and design choices. A developer on Cursor’s website says the tool anticipates exactly what I want to do 25 % of the time, to the point where I feel like I am coding at the speed of thought (cursor.com). I understand that sentence very well. When the context is right, it almost feels like you can think of the software and watch it appear.
Everyday vibe coding with simpler tasks
In my day-to-day work, vibe coding mainly helps me with specific tasks. They are rarely the most visible ones, but they often slow a project down.
-
Quick debugging. I spend less time stuck on an obscure bug. I can describe the problem to the assistant, for example, this function returns error X under these conditions. It often points me in the right direction, then sometimes suggests the fix directly. I had a bug in an API that was returning the wrong data. I showed the faulty code to the AI, which spotted a misplaced function call. Within a few minutes, the bug was fixed. Without that, I might have spent half a day on it.
-
Looking up forgotten syntax. I can avoid spending 20 minutes in the documentation to find a pandas parameter or the right API method. If I am unsure whether to use pandas.DataFrame.dropna() or a hypothetical drop_values(), I can ask directly in the IDE, How do I remove null values from a pandas DataFrame again? The assistant responds with the correct method, often with an example. It is like having StackOverflow built in, without leaving the editor.
-
Implementing features. When I design a new feature, I can write the expected behavior in natural language. For example, Add a password reset feature. A user enters their email, we generate a unique token, send an email with a link, and allow the password to be reset through that link. In an intelligent IDE, the AI generates an initial draft of the routes, the token creation logic, and sometimes even an email template. It still needs adjusting, testing, and securing afterward. Much of the repetitive work is already prepared.
These cases explain why vibe coding saves me time. Tasks that required a lot of back-and-forth become smoother. I can stay focused on business logic and product quality, instead of wasting energy on boilerplate or forgotten syntax.
The limits of vibe coding and the developer’s responsibility
An AI that writes code makes certain steps faster. It also adds new risks. Through coding by feel, I have seen the limits of this approach. The assistant can be very effective. Architectural decisions, product understanding, and security review remain human responsibilities.
-
Fragile architectural choices. If the request lacks precision, the AI may take the most direct coding approach. While developing a game through vibe coding, a user found that the model put all the features in a single JS file, instead of separating the display, state management, and menu. The result was tightly coupled code, with almost no separation of responsibilities. I have seen similar cases in web development. The AI suggested calling a new API without properly carrying that call through the front-end architecture. The code came quickly and introduced inconsistencies. AI can speed things up. Architecture remains our responsibility.
-
Vague instructions produce vague results. AI works with what we give it. Saying improve this module to make it faster without specifying the context can produce pointless or absurd changes. One developer reports that, when vibe coding, if he wrote only Make it better, the AI would launch into unexpected changes. I have experienced the same thing with overly vague prompts. The right habit is to formulate a request almost like a mini-spec. Otherwise, the time saved disappears into corrections.
-
Black-box code. When AI generates a lot of code, the temptation to accept it without reading everything becomes strong. Karpathy himself has admitted clicking Accept all without reading the code diffs (nmn.gl). The risk lies in losing your understanding of your own code. I experienced this on a project where the code was advancing faster than my ability to keep up with it. When a subtle bug appeared, I had to spend a long time digging back into a codebase I did not understand well. Since then, I have kept a simple rule. Even when the AI makes a suggestion, I review and understand every addition before integrating it.
-
Security risks. AI can suggest code that appears to work but contains a vulnerability. One real example stayed with me. AI-generated authentication code exposed API keys in plain text on the client side. The interface looked correct, but inspecting the network traffic showed the OpenAI key being transmitted publicly. I have also seen the assistant suggest hardcoding a password or skipping user input validation. Generated code deserves the same scrutiny as a merge request written by a fast junior developer. Useful, sometimes careless.
Vibe coding therefore acts as an accelerator. Karpathy also warns that this approach is better suited to small, improvised weekend projects than to serious production software development. For more ambitious projects, rigor remains essential. You still need a target architecture, tests, a review of the generated code, and an understanding of every change. AI writes code. The decision to integrate it remains human.
A solo developer can go much further with Shoot IA
Shoot IA is a web platform that I developed entirely on my own, making full use of the new AI-assisted tools. The concept is to generate professional photographic portraits from images using AI. In a few months, without a team behind me, I launched the product and attracted more than 10 000 users to shootia.fr. This is a milestone that many startups aim to reach with a full team covering front end, back end, devops, and sometimes many more people.
Personally, this result made an impression on me. Alone with an intelligent IDE, I was able to accomplish what would probably have required 5 to 10 developers a few years ago, or a team of 50 people in a more traditional organization.
For Shoot IA, I used Cursor and other assistants to speed up front-end work, generate email templates, test several implementations of image algorithms, and resolve technical decisions. When I was unsure about a technology or an approach, the assistant helped me like an expert colleague available on demand. I was able to explore several options quickly, whereas alone, without these tools, each detour would have cost much more time.
The result is a complete platform, with a frontend, backend, AI model training, and user interface. Everything required scoping, review, corrections, and decisions. AI absorbed a significant portion of the execution.
My case is part of a broader wave of solo founders using AI to launch products. In 2024, 36 % of startups were founded by a single person, twice as many as in 2017. Examples such as Bhanu Teja, who coded the prototype of SiteGPT, a custom chatbot tool, in a weekend before turning it into a profitable SaaS making $15 000/month, or Samanyou Garg, the solo creator of the writing assistant Writesonic, which grew to more than 10 million users in 3 years, show that scaling up can also come from small teams, or even a single person.
Solo success with AI is still far from automatic. The possibility now exists. A determined developer who masters vibe coding and modern tools can build much more than before within the same working days.
Personally, going from personal projects limited by a lack of time and helping hands to a service like Shoot IA with thousands of users has been very motivating. I feel that a developer equipped with these tools can become a small team all on their own, at least up to a point. At some stage, bringing in others becomes necessary again for maintenance, customer support, or faster development. That stage comes later. AI makes it possible to keep going alone for longer, because it absorbs part of the workload.
The developer’s role is already changing
Vibe coding and AI-based coding assistants have profoundly changed the way I develop software. After 17 years of coding, I had never seen a tool change my productivity and habits so quickly. I think this mainly shifts part of developers’ work.
Repetitive tasks and the plumbing of code are becoming increasingly automated. That is rather good news. The time freed up can go toward design, architecture, creativity, and product decisions. As GitLab’s CTO notes, software engineers remain essential for guiding strategy, overseeing code quality, and spotting bugs or vulnerabilities that the machine may introduce. In my own practice, I feel more capable with AI, and still responsible for what I deliver.
This development does require developers to adapt. Those who adopt these tools gain a clear lead over those who ignore them. A coder who uses AI well can deliver faster, produce more, and reduce certain errors, provided they maintain real discipline in their reviews. Conversely, rejecting these tools means denying yourself a means of improving productivity that is becoming standard in the industry. People have often talked about the 10x developer, ten times more productive than average. AI makes that idea much more tangible for more developers.
Having started by laboriously typing code into a basic editor, I view this development with enthusiasm. Coding increasingly resembles a conversation with a very competent assistant. Vibe coding has already changed how I work, and I think developers have a lot to gain from learning to collaborate with these tools.
This development keeps developers in the loop and requires them to raise their game. They still need to define requests more clearly, review more carefully, understand the architecture, and remain responsible for the code delivered. Those who know how to work with AI will have a clear advantage. The others mainly risk seeing their way of working become outdated very quickly.