My name is Fabio, and I have been writing code professionally for over two decades. As a developer, I have always been drawn to writing reusable code once and reusing it across projects, refining it over time. Long before I ever heard the term "Open Source", I was already sharing small utilities and libraries with my colleagues at work. It just felt natural. If something helped me do my job better, maybe it could help someone else, too.
Then came Google Code (remember that?), and with it, my first real entry into the open source world. I started publishing my personal libraries, thinking they might be useful to someone beyond my team. That idea took root and grew fast. When GitHub became the central hub for Open Source, I transitioned there and began sharing Objective-C
libraries I had developed. The response from the community was immediate and energizing: people were using, improving and talking about the tools I built. That feedback loop hooked me.
To me, Open Source is more than just sharing code, it's about learning continuously and staying in sync with the rapid evolution of technology. Compared to when I started coding ~20 years ago, the pace of change today is staggering. Open Source helps me keep up.
It also shapes the way I build things. Knowing that others might use my libraries pushes me to write cleaner, more flexible and reusable code. It's a mindset shift that made me a better developer overall.
These days, I focus primarily on Python
and Django
(my favorite technologies to work with and the ones I know best). Over the years, I have published around 20 Open Source projects, many of which I still actively maintain.
Here are a few that I'm particularly proud of:
- python-benedict — A supercharged
dict
subclass that makes working with dictionaries easier and more powerful. - django-admin-interface — A modern, responsive and customizable UI on top of the default Django admin.
- FCUUID — A reliable way to generate and persist UUIDs on iOS devices.
These libraries are used and appreciated by developers all over the world, and I'm incredibly grateful for the feedback and support received.
If you are curious, you can explore the full list of projects I developed and maintain here:
👉 https://github.com/fabiocaccamo?tab=repositories&q&type=source&language&sort=stargazers
I'm not a marketing person, and I don't try to be. Since Open Source is not my primary source of income, I'm not chasing followers or stars. I believe in natural growth. If something I build is genuinely useful, people will find it.
That said, I do share my work occasionally on Reddit and more recently on BlueSky. That's usually enough to get the ball rolling. Over time, those who really benefit from the tools tend to stick around, contribute, or at least say thanks (which is always appreciated).
Maintaining ~20 Open Source projects is not easy, it can be exhausting.
There's a common pattern in Open Source where many people ask for help, features or fixes, but few contribute back, either with code or financial support. That imbalance can be hard to sustain.
To manage this, I've set a few boundaries that help me stay sane:
- Stay up-to-date: I keep my libraries compatible with the latest versions of the languages and frameworks they rely on.
- Zero bugs policy: I fix issues as soon as possible. I'd rather spend time squashing bugs early than deal with a flood of reports later.
- Feature development: I only add new features when I personally need them or when someone sponsors the development.
This approach helps me maintain a high standard while keeping stress under control.
If you're using Open Source libraries, especially in commercial products or at work, please consider sponsoring the maintainers. Your company benefits from these tools, and a small contribution can make a big difference in keeping them alive and maintained.
Contributions don't always have to be financial, though. Bug fixes, documentation improvements, test coverage, and respectful feedback are all useful and appreciated.
Like many developers today, I’ve started using AI tools to speed-up my workflow. I use them mostly as assistants: to double-check my code, identify potential issues early or explore alternate solutions.
For me, Open Source isn't just a hobby or a way to give back. It's part of how I work, learn and grow as a developer. It keeps me sharp, connects me to a wider community, and gives purpose to the libraries I build.
If you're just starting out, my advice is simple: build things that you find useful. Share them. And don't worry too much about marketing or stars. If it solves a real problem, people will notice.
Thanks for reading! :)