Attention is all you need: this is a long story

And maybe that’s exactly why, in these past years, I never decided to dedicate time to writing a few lines about the incredible technological revolution we’re living through — perhaps the biggest one of the last centuries.

I spent most of my time observing how interfaces change, how technology evolves; I saw hundreds of professionals sticking new job titles onto themselves without even understanding them, and I tried in every possible way to avoid the inevitable media noise around AI. Sometimes with very poor results and, I admit it, I found myself arguing on Reddit more than once about which model was “best” at a given moment.

I found the time to record a few videos during our late-night meetups, to capture the amazement of each new release, and to show the world our incredulous eyes and very tired eye bags.

Discovering I had Gilbert syndrome thanks to an LLM and a rule engine definitely fueled my unstoppable desire to see how deep the rabbit hole really goes; I admit it, those were rough times.

It’s hard to explain, but ever since then I keep reliving the same wonder I felt listening to the 56k handshake, with its krrrrrrpeeeepeeeeeeebzzzz , often followed by my mother yelling, because she knew perfectly well that my aunt in Spain would find the phone line busy — and that I’d go to school just to sleep at my desk.

Today I have 10 Gbit fiber, a backup connection, I’m 36, and no one can disconnect me from the machine… except good sense and Silvia, who often doesn’t even realize I sneak out of bed because: “Have you seen this incredible paper on Hacker News?!”

I always fail miserably at trying to leave my phone outside the bedroom.

I’m a Fixer

Tommaso Ebhardt told Marchionne’s story in a masterful way, and something he said became mine — to the point of becoming an obsession. A phrase Sergio repeated very often: “I’m a fixer.”

That’s pretty much how I live my passion and my work: I fix things until the very end; my attention fades only when whatever was creaking finally becomes a perfectly oiled machine.

You can fix it — yes, with Bob!

This theme song tormented me for years, not because I was a fan of the cartoon, but because I earned the nickname “Bob the Fix-It-All” from colleagues and friends.
And so, once again, software became an extension of me — something that almost lives in my image and likeness:

“Ehhh André, I can’t clone you! When we have code review you fix everything!”

Alessio has been telling me this since the days of our first SQL injection, which earned us a suspension and an exemplary punishment for the two “computer wizards”.
No, not Azkaban… but two months without a PC. Definitely worse than Dementors.

And so, after seeing firsthand that a prompt is not enough, thanks to the incredible journey with Mascarpone, even before Addy Osmani made the buzzword explode, I was already working on the natural concept of context engineering. And that was exactly what Alessio’s “dirty dreams” required: a digital instance of me, always ready to fix technical debt with extreme precision.

Bob The Builder — because that’s what he was called at first — was born in the mountains near my home, on a lazy June Sunday.

Mountains

The Idea

“What is the most resilient parasite? A bacteria? A virus? An intestinal worm? No… an idea. Resilient, highly contagious. Once an idea has taken hold of the brain, it’s almost impossible to eradicate.”

And right after trying yet another tool that promised to reduce my application’s technical debt using AI, that idea started to take shape.
And from that moment on, it never left me: build one myself.

Merging the non-determinism of an LLM with the determinism of a rule engine is like working constantly on the edge of a cliff. My experience with Drools and LangChain4j reminded me exactly of this approach: on one side the exploratory, almost “visual” ability of a language model to wander across solutions and contexts; on the other side the need for clear, strict constraints — the implacable quality gates of SonarQube to anchor the final result.

First Lights

The first version of Bob used an approach I was familiar with: a Quarkus backend, LangChain4j, OpenAI models, and a local SonarQube instance. It was everything needed to trigger the first automatic fixes.

The backend cloned the repository to be fixed and immediately pushed it to the local SonarQube instance. From a terribly uncomfortable web interface, Bob showed which issues to tackle, but that’s precisely where the magic happened: a complex weave of Sonar data created the context for each issue by answering two simple questions:

Issue

All this information created the perfect storm for that issue: a clear and precise picture of the violated rule, why it was an issue, and how to fix it.
The LLM did the rest. It worked.

And while the world was celebrating context windows with a million tokens, our real breakthrough remained the oldest principle: divide et impera.
And so, on July 17th, Bob met my friends at the Spaghetti Mastermind — and for one evening, we were the stars of the night.

Bob-V1

Various Walls Along the Way

What is the most precious currency for modern thinkers? Time.

And I had less and less of it, especially because summer months were extremely intense at work. I had very little time for open source, and that little time went into low-cognitive tasks: for example, I published the official Italian version of Go By Example.

Bob required commitment and attention. But above all, an architecture like that felt too complex to run comfortably on a single machine: I wanted Bob to be available to everyone, with one click.
And to really understand that, I needed to get up from the chair and stretch my legs a bit:

O Cebreiro, the Cruz de Ferro, the extreme heat of the mesetas: more walls, sure — but fertile ground for a new architecture. I had a thousand kilometers to think, and maybe that was the winning card.

Buen Camino, peregrino!

Buen-Camino

Toward a New Architecture

September brought a new wave of energy, and the design I had in mind revolved around three well-carved words:
Model Context Protocol.

I know, I know! Everyone was talking about it — even my mother knew that “everyone has built an MCP Server by now”.
But I really needed it, for one simple and obvious reason: eliminate any form of custom function calling, standardize the entire process, and make it available to as many clients as possible…
the CLI.

Bob the Builder had become an MCP server with just ten tools that orchestrated Sonar’s information in the most effective way, creating our famous perfect-storm context for the LLM.

And once again, it worked — damn well.

On September 6th, Bob returned to the Spaghetti Mastermind in top shape:

Test Bench

Communities have always played a fundamental role in my life; much of who I am today I owe to them, and to the friends I met along the way.
And when a friend is in trouble and you hold the key to the lock they’re chained to… what do you do?

Telegram

Obviously, you stay up all night together.

The battlefield scenario was disastrous, but the view from the hill was perfect and clear: a TDD backend built by the book (and yes, TDD would be the key to our bet), and three weeks of security-team interventions that had drastically worsened the code, destroying every Sonar quality gate.
Two weeks of technical debt to eliminate in a single night.
No exceptions.

Andrea
Coverage is super high. We could run Bob with automatic fixes and, after each fix, he runs the tests. If they pass, he moves to the next issue. If they don’t, he sends us a Telegram message and we fix it manually. What do you think?
Alessio
Why does this thing do this kind of magic?!?
Andrea
Didn’t you watch the video the other night?
Alessio
André, I’ve got three kids… how can I watch your videos at night?!

Fifty euros of Anthropic API credit, and Bob flexed his muscles with his pipeline mode: the last resort, Goku’s Genkidama.

That epic night, between laughter and childhood memories, went more or less like the video you’re about to see.

And of course, Alessio — with three kids — had missed it!

Game Over

Bob The Builder was going to leave GitHub for a while.
License issues, malicious forks, and the usual neighborhood tricksters — the perfect recipe that forced me to make a drastic decision.
The repository became private. Game over.

And in a period where monetizing AI is difficult, every open-source repo becomes an open buffet: people take everything, without rules, without scruples, without even respecting licenses.

This was not what I had imagined.
And above all, not what I wanted.

Bob The Fixer

Open source is a raging river, and as if I hadn’t already seen that video enough times, it reappeared — loud and powerful — on my YouTube home page, almost as if Salvatore himself were sending me a sign.

I opened Bob’s code again: I hated it.

So I put it in my head: this time Bob will be so easy to install that anyone will be able to try it.

Bob will work only via CLI, without external API keys, even with local models, and with the possibility of extending it through simple, well-structured WORKFLOWS.
And above all: Bob will install with a single command, on Linux and macOS.

With the crooked spine of someone who didn’t let life bend him, Bob returned to GitHub with a brand-new spirit:
One Command To Install.

curl -fsSL https://raw.githubusercontent.com/andrearaponi/bob-the-fixer/main/install.sh | bash

Does It Work?

We’ve said enough words already — maybe it’s time to see it in action:

And Now?

Bob has a rich roadmap, with a number of features that will keep me busy at least through 2026. And since it will be my only side project outside of work, timelines might stretch a bit… but, as always, I’m counting on the community. So if you have suggestions or ideas for me, feel free to reach out!

My thanks go to Alessio, the Spaghetti Mastermind, and Silvia — who, despite the many hours I spend in front of a screen, always keeps the road to my dreams clear… and often gives me a good push too.

Because in the end, technical debt never disappears on its own. But with the right tools — and the right people — you can always put things back in order.

I’m a Fixer

Girogirotondo