Mastodon Icon RSS Icon GitHub Icon LinkedIn Icon RSS Icon
GitHub Icon BYTE • PROGRAMMING

The Golden Rule of Using AI Agents

As with many, I played around with AI agents in code. Contrary to some opinions, AI agents made me rediscover the joy of coding (for many reasons I may discuss another time). However, I am not blind, and I owe my satisfaction with AI agents to a strict mental model and practice.

If you are not a software developer and you use AI to jam together personal scripts for yourself, do not worry, you can do as you want. If you are using them to learn something, don’t worry either.

But if you are a professional coder or you want to publish your work, you have to follow the Golden Rule:

You must use an AI Agent only to do what you know how to do.

Only in this way can you be efficient with them. Only if you know how to do something can you instantly spot when the agent is doing something decent or not. Only if you know how to do something can you recognize whether the generated code is good.

This doesn’t make them less useful. I like to code algorithms, solve problems, and sketch the architecture of the various elements. So I focus on that while I let the robot work on things I loathe. Things like CLI interfaces, reporting, writing diagnostic endpoints, and other tasks I find super boring. I know how to do them; they are just boring. So I let the robot do them while I focus on the math and the algorithms.

However, be careful. The siren’s song is strong. If you are not disciplined, you may think, Why not? Why should I not use the robot for this thing I don’t know how to do?

And that’s the moment you open yourself to fatal mistakes.

It Is Okay to “Vibecode”

Sure. It is not the best. But, if it works for you, who cares?

Dennis Nedry in Jurassic Park vibing, drinking a soda, in front of computers.

Critiques to vibecoding are often an example of right-Gaussian thinking. If you want to be a developer, you should avoid it. But if not, why should you not take advantage of new tools? Just be aware of the limitations. Here I try to explain why vibecoding is not a cardinal sin.

De-Bootstrapping my Blog - Part 2 - Going Mobile

Or, how I faced my fears and implemented a responsive layout.

A geometric pattern of 3D cubes.

I am writing a series of posts about the development of a new blog theme. In the second part, I describe how I conquered my fears, and implemented a responsive layout and a hamburger menu in pure CSS.

De-Bootstrapping my Blog - Part 1

A geometric pattern of squares and grids.

I am writing a series of posts about the development of a new blog theme. In this first post, I talk about the history of web design (in my experience) and the new best thing in town: CSS Grid.

Polymorphic Class Serialization in Spring and MongoDB

Polymorphic Faces.

I was recently faced with the perplexing problem of making Spring and MongoDB serialize/deserialize a polymorphic class. Initially, it seemed like a simple task, but it proved to be more complicated than anticipated. Allow me to share my solution.

Exploring the Small Web

Header image for Exploring the Small Web

I stumbled into the Small Web. A minimal barebone version of the web. It’s a place that remember me of a long gone web. It is the Small Web powered by the Gopher and Gemini protocols. Let’s see what it is and why I decided to create there a small intimate island.

A simple Event System in TypeScript

Header image for A simple Event System in TypeScript

Events are an intuitive way to model the execution flows of applications when several modules, each one with complex lifecycles, need to synchronize with each other. In this article, I go over a very simple and minimal Event System for Typescript so that you can use it too, or understand the basic principles of existing event system packages.

How VSCode's RestClient saved me from Postman

Header image for How VSCode's RestClient saved me from Postman

I do not think Postman is bad (in the general sense), but it is the piece of software I hate the most that I need to use on a daily basis. Well, not anymore! I’ve recently found the perfect Visual Studio Code extension for managing APIs: RestClient.

Will Zig be the "sweet spot" I am looking for?

Header image for Will Zig be the "sweet spot" I am looking for?

Let’s continue our exploration of novel kinda-low-level languages. After a quick exploration of Crystal, it is time to look at another language that is constantly popping up on my sources: Zig. It will be my new love? It will be the perfect tool I was looking for? It is the beginning of a new programming langue star? Let’s find out that together.

Will Crystal be the "sweet spot" I am looking for?

Header image for Will Crystal be the "sweet spot" I am looking for?

The Crystal programming language recently reached version 1.0. As a modern compiled language, it caught my attention. It is time to spend some time playing with it to have a better idea of its potentialities. Will this “Compiled Ruby” be the sweet spot between Python and Rust I am looking for?