The other day, this meme appeared on my timeline.
This PR looks suspicious…
Shout-out to my friend Edoardo Vacchi
I kept hearing about vibe coding here and there until someone sent me an article about it. The article went deep into “prompt engineering” and how LLMs will eventually replace us all.
Last month, a (non-tech) friend bragged about building a Discord bot with zero code. A few days later, he came back saying he’d fallen into an endless rabbit hole.
This narrative—let AI do your job; just be good at prompting—can trap software engineers, especially juniors.
I’m not gonna lie. I (as well as many others I know) have been using LLMs for code assistance. If you are not on this bandwagon, you should be.
In this article, I’ll show how prompting can boost productivity, enhance creativity, and improve critical thinking.
Exploring Ideas
When you have a big idea, look for alternatives and validation. Clarify what you’re trying to do.
The more specific details you can give to the model, the better. On ChatGPT for example, there are tools that run deep searches and produce reports on each requirement.
To improve results, list your requirements, give examples, and be specific about the brand-new idea.
Use this time to brainstorm with the machine to pre-validate your approach. Then bring it to your team or peers.
Patterns and Best Practices
When I start learning something new, I often look for patterns and best practices that experts recommend. With LLMs, this research is now a breeze. When I implement a new feature, I check whether there’s a better way - or a pattern I’m missing.
Code Review
After I finish a feature, I ask for an “artificial” code review. What can I do better? What am I missing? Am I forgetting a specific code path?
Instead of prompting for “generate this code for me”, I’d rather ask the model what the gaps are. Sometimes, we might forget to check for a null reference or write more code than necessary.
This exercise often helps me learn something new.
Testing
Sometimes, writing unit tests is boring. I know many engineers who won’t do it — or do it poorly. You can list the test cases you’d like to check or even ask for a couple of suggestions. The model can generate test code for any framework you’re working with.
It’s a boost to your productivity and can enhance the code tremendously.
Scripting
LLMs are great for small shell scripts, CI pipelines, or even code documentation. I use this approach so I can spend more time on creative and design tasks.
The code generated is small enough for you to test, verify, and judge. The narrow scope is also great for the model to generate more reliable code.
Remember, LLMs are better at searching and are more likely to give you what you need. Instead of spending hours on Stack Overflow, blogs, and GitHub issues, ask a model. You’ll get to solutions faster. Just don’t overuse it or delegate everything to the model.
Own your work, don’t let the machine do it.
