December 30th, 2025 // Cajuru, Brazil

My first big project: GenieACS

#tr069
#programming

There's something magical about seeing a solution you built actually working in production—day after day, non-stop. It's like forgotten witchcraft that just keeps running. For me, that project was implementing GenieACS at an ISP.

I had zero experience with programming when they dropped this on my desk. Looking back, it was sink or swim, and somehow I learned to swim.

The Problem

We were managing 90,000+ routers manually. Technicians would access each router's web interface and configure settings by hand. Everyone knew what to do, but small mistakes kept happening. It wasn't their fault—it was a process issue.

These misconfigurations were hitting clients directly. Audits were a nightmare. Something had to change.

Enter GenieACS

Someone introduced me to GenieACS, an Open Source tool that manages CPEs (customer premises equipment) remotely using the TR-069 protocol. It communicates with routers via SOAP envelopes, handling everything from configurations to firmware updates.

It seemed like magic. It wasn't, but it felt like it.

The catch? The documentation was terrible. "WIP" everywhere. No "getting started" guide, just cryptic explanations followed by more "WIP" tags.

I had no idea what I was doing.

Learning Through Forums

With no proper docs, I turned to the forum. That's when I had my first big realization:

Almost everything you're facing has already been faced by someone else.

Posts from years ago were solving the exact problems I was hitting. This led me down a rabbit hole—Stack Overflow, Reddit, specialized forums. People actually helping each other, sharing solutions, discussing technical issues openly.

Not every problem had been solved before, but most had.

Asking For Help

Here's the thing about asking questions online: I was terrified.

I kept thinking:

So I just watched. Read everything, but never posted.

Until one day I did. I typed and retyped my question maybe ten times before finally hitting submit.

Hours passed. Each refresh felt like torture. No answer. Not even a view.

The next morning: someone had replied with exactly what I needed.

Making It Work

Days turned into weeks. I learned by doing—reading forum posts, applying solutions, breaking things, fixing them, learning what not to do.

Eventually, it worked.

The results were incredible: 30% reduction in operational costs across the board. Service orders, audits, rework, gas costs for technician visits, automatic configurations—everything improved.

What I Learned

This project taught me more than just how to deploy GenieACS:

1. Documentation won't always save you
Sometimes the best documentation is a forum post from three years ago by someone who struggled with the same issue.

2. Ask the "stupid" questions
Nobody on those forums mocked me. People who contribute to open source communities genuinely want to help. Your question might even help someone else later.

3. Production is the best teacher
You can read all the docs in the world, but nothing compares to deploying something real, with real consequences, serving real users.

4. Imposter syndrome is a liar
I had no business implementing a system managing 90k+ devices. But I did it anyway, one forum post at a time.


Looking back, being thrown into the deep end was the best thing that could have happened. I wouldn't have learned as much taking a slower, more "proper" path.

Sometimes the best way to learn is to just start, even when you have no idea what you're doing.