I’ve always considered myself a "tool guy." My passion isn't just about solving a problem; it's about building a better, faster, and more elegant tool to solve that problem. It's a journey I've been on for 55 years, and it started long before most of today's developers were born.
It reminds me of a time in 1984. I was working on a massive Air Traffic Control system for Riyadh. The project had a central component that took two full days to regenerate after any small change. During that endless waiting, I decided to build a better tool. I rewrote the core logic in a different language, and the regeneration time went from two days to just a few minutes. That was the moment I understood what I loved to do.
I saw that same revolutionary leap in productivity years later with tools like Turbo Pascal, and again with modern IDEs like PyCharm. Each step made the process of creation faster and more fluid.
Recently, I decided to start an experiment. I wondered if the new generation of AI language models could be the next great tool in that evolution. I had a project in mind: a way to create virtual Raspberry Pi servers on my PC for testing my other big project, PiSelfhosting
. The goal was simple: automate the creation of a perfect, secure, and instantly usable virtual machine.
What followed was one of the most intense, frustrating, and ultimately rewarding development sprints of my long career. I wasn't just using an AI; I was working with it. It became a dialogue.
I would set the architectural direction, born from decades of experience. The AI would act as a tireless junior partner with a photographic memory. I'd ask for a Python script to manage VirtualBox, and it would generate the boilerplate in seconds. I’d describe a complex first-boot configuration script for a Linux VM, and it would produce the systemd
service file with the correct, obscure syntax that would have taken me an hour of searching to find.
But it was not a simple, straight path. We hit a wall—a deeply frustrating networking bug. My virtual Pis were running, I could connect to them with an SSH client like PuTTY, but my network discovery tool, nmap
, couldn't see them at all. My real Raspberry Pis on the same network were found instantly. For my project to succeed, the virtual Pis had to be indistinguishable from the real ones.
This is where the collaboration truly shone.
The AI, working from its vast dataset, suggested logical first steps: check the firewall, try a different nmap
command. We tried them all. Nothing worked. It then suggested a more complex solution involving changing my host machine’s network driver settings.
This is where my experience kicked in. "No," I thought. "That is not a good solution. A user of my project should never have to reconfigure their own PC." I rejected the AI's suggestion because my human experience provided a crucial piece of context: usability and robustness are more important than a quick fix.
I guided the process back to a more elegant solution: a two-adapter network setup within VirtualBox itself, creating a private, stable network just for management. The AI immediately understood and generated all the necessary configurations. We had found the answer together. The AI provided the raw technical knowledge at incredible speed, and I provided the architectural oversight and the real-world judgment.
We went from a single script to a complete, professional-grade system with unit tests, a pre-commit quality gate, and a full release workflow. We did it in a fraction of the time it would have taken me alone. The AI was the ultimate tool to bypass my "10-finger bottleneck," allowing me to engineer at the speed of thought.
The journey has proven to me that this is the next great leap. For a "tool guy" who started with programmable calculators, collaborating with an AI to build a new tool has been a remarkable and deeply rewarding experience.
If you're interested in the result of our collaboration, you can find the pi-server-vm
project on GitHub. I hope it saves you as much time as I enjoyed building it.
Top comments (1)
If you are wondering which AI I used. I started with ChatGPT. This was a nightmare. To many iterations and sometimes I just walked away because of the frustration.
But I thought I won't give up after just one ai tool. Lets try PyCharm AI. Even worse. after a few days I ran out of tokens for the rest of the month.
Local LLM's were also not possible becauae I don't have high lever GPU cards.
Gemini then. That worked much smoother. I don't know why. But also limits on usage.
aistudio from Google was the solution. Although not perfectm but very usefull in my case.
My project is not an everyday project you can find on the internet. It was for me definitly much more rewarding to see AI working with me and me controlling the outcome.