Vibe Coding - Navigating the AI assisted software landscape

Before we dive into what “Vibe Coding” is all about, it feels right to first pause and thank the researchers and engineers behind the incredible LLM (Large Language Model) technology. This tech is powering solutions across an array of problems, from boosting productivity and enabling rapid validation to facilitating smoother migrations and effective modernisation. While I might jest that it’s running the world without pressure, patience, and creativity, I am wholeheartedly grateful to the technologists behind Generative AI. As an engineer who works with cloud, data, and AI engineering solutions, I see its potential first-hand.
Let’s get straight to the point: Vibe Coding is the practice of using AI to write software based on human-augmented prompts, often in a conversational pattern. Think of it like a chatbot, but one that possesses the intelligence to write code for you based on the context and information you share. It has significantly more potential than a standard business-facing chatbot which might only respond to user queries related to a particular business; for example, a chatbot typically can’t help you debug, deploy, or maintain a software system.

From my experience, I’ve learned that it’s incredibly important to follow best practices when you engage in Vibe Coding with AI code generators to steer clear of common pitfalls. Here are some of the key practices I try to stick to:
- Start with clarity and context: Before you even ask the AI to write software, make sure you have some documentation in place. Create a convention, a PRD (Product Requirements Document), and application work/user flows. Define your code standards and tech stack if you have them in mind. This upfront effort helps the AI stay aligned with your preferences and prevents confusion down the line.
- Divide and conquer: Don’t try to solve everything at once. Break down problems into small chunks and manageable, testable steps. Always start small. Instead of asking the AI to build a complete app in one go, tackle features one at a time.
- Communication is key: Chat with the code generators just like you would with your colleagues. Ask the AI to explain the approach it plans to follow. Choose the simplest approach, especially one you understand and prefer. Encouraging the AI to ask questions is crucial to avoid later confusion. Also, make use of any custom instructions or rules that the AI code generators allow you to set.
- Adopt the R-U-Ready framework?: This framework involves reviewing, understanding, and assessing the readiness of the generated code for progression. Do not blindly accept the code the generator provides. Keep it simple by asking for information until you get clarity on the code before integrating it into your system. It’s also important to get an architectural overview of the application and primarily comment the code for maintainability.
- Embrace pair coding techniques: Use version control diligently. Make atomic commits for easier code maintenance and debugging. Utilise live debugging tools to understand and fix issues as they arise. If you encounter problems, bring them back into the conversation with the AI for troubleshooting.
- Save done and tested prompts: To speed up your workflow and ensure consistency, save the prompts that worked well for future use. Store them as templates and consider exchanging them with others — it’s a great way to learn.
- Trust but verify: AI-generated code can look perfect, but it’s vital to verify and test it rigorously before using it in a real-life application. Pay special attention to edge cases and potential security concerns.
- Feedback matters: After using AI-generated code, understand what worked and what didn’t. Document this knowledge and bring it back into future conversations with the AI for better code generation next time. You can also ask the AI to write test cases and supplement them as needed, especially for critical functionality.

As an additional note, I’ve found that using voice software (speech-to-text apps) to interact with the AI can make the process simpler and easier. It allows for a more natural flow and can be particularly enjoyable for builders who prefer speaking over typing.
Vibe Coding, when approached with these practices, can be a powerful addition to an engineer’s toolkit, enabling more efficient and potentially more creative development workflows.
Photo Credits: Nick, Wietse, Miguel from Unsplash