
Vibecoding and the art of solving my wife's problems
So, my wife had a problem. And of course, trying to be a good husband, I made that my problem.
What was the problem then and why am I blogging about it now? Well, that’s pretty simple. She decided to download a copy of all her photos from Google Photos, but soon discovered that all the nice EXIF metadata were not there anymore. Pretty inconvenient, isn’t it?
Searching around, turns out that using another tool, Google Takeout, you can download your media files, along with their metadata stored in a separate .json file.
Now, with a couple of photos, this wouldn’t be an issue. But of course that was not my wife’s case, as she had almost 2 decades worth of pictures stored there.
“Wait a second, I can code something for you!”, I said.
Now, if you know me, you know that I am quite lazy. And I wanted to come up with a solution very quickly. So what did I do? Well, that’s simple: I vibecoded everything (almost). And guess what: it was working decently fine, at least enough to make my wife happy (which makes me happy as well, as you may guess). As usual, I’ve put the code in a git repo, in case anyone else has the same problem: https://github.com/mizrael/media-exif.
Now, why am I even writing about this? Good question. Let me go a bit back in time.
I wrote my first line of code around 1988 (gosh, I feel old only typing it). Since then, if something sparked my curiosity, I have always tried to figure out how it worked and if I could write it myself (especially videogames).
All of this just to say that I love coding. I enjoy the act of creation and the thrill I get when I see pixels on the screens doing what I asked the computer to do.
Vibecoding this small tool for my wife almost felt like asking somebody else to do the “dirty job” for me. The result worked, but the process took away the pleasure from me. In a way, it still had some charm though: in my mind I was playing this twisted game of golf where I was trying to get to a working solution in the least amount of prompts.
Does that mean that vibecoding is bad and I won’t be doing it anymore? No. But I am definitely using it very sparingly and consciously, like a surgeon.
Like most software engineers, I am paid to solve problems. The faster I solve them, the quicker I can move to the next one, then the next one and so on. The more problems I solve, more money the company makes, and I get to keep my job (hopefully with some nice bonuses too).
I’ve been in this game long enough, which helps me understand AI-generated code most of the times. This is definitely helping me, but I would never, ever, vibecode stuff and put it on prod.
At work I might be vibecoding a prototype, throwaway code that I would use only to test an idea and then delete. Helps me iterate quickly and get to the point faster.
Vibecoding is a great tool, but it’s not there yet. Most of the times the resulting code is too complex, too convoluted and needs a lot of refinement.
I also still want to have a certain level of control on the code, and if I have an AI produce it and then I have to fix it, it would completely defy the purpose.
There’s also another aspect to it. As I wrote before, I can read code written by others (AI or humans, doesn’t matter), and with enough time, make sense of it. This ability came after years and years of practice.
If you’re starting now to code and all you do is write prompts, then you’re doing it wrong. You’re not learning anything, so just stop and perhaps reconsider your life choices.



