🔙 Reflections of five years doing Hacktoberfest
The event has grown and I with it. I was thinking about that and decided to share some thoughts... I might change my mind later.
Five or four years ago, I had little engagement with open source and collaborating with the community in general. Despite my genuine interest in giving back, I knew little about practical ways of doing it.
Then I heard about Hacktoberfest for the first time. The idea of going beyond using and sharing open source, and actually to collaborate sounded nice, in addition to that, we would get rewards, looks great!
I am going to be open (puns intended), and I admit that the shirt was appealing to me. We can argue whether or not that's "cheap" from me, but we should agree to the fact that with the right incentives, we all get more traction.
The event over the years
The event changed the goal number of PRs a couple of times, 3 to 4, 4 to 5... I also saw multiple in-person meetups spawning so people could work together, sense of community growing! And in this year's edition, you could even plant a tree instead of getting a T-shirt you can still donate it 🌲.
Imho, they did the most meaningful change was done this year, and it came for good: the new rules. The increasing success and the lack of quality checks of the contributions laid the path to the maintainer's burden. The problem only got more significant, and the organisers acknowledged it.
The PRs now only count towards the goal if maintainers opted-in to participate by classifying their projects with the hacktoberfest topic, or if they labelled it with the specific hacktboer label, or if they approved it.
That's great at various levels, and I hope we all will see more and get a more mature format over the upcoming years.
My contributions over the years
I started by collaborating with open projects from the uni I went and research groups I was part of previously. That was sufficient to achieve that first year, but that had very little to do the broader development community.
The following years I tried to fill that gap, I contributed to the open design systems as the one from the company I was working. In addition to that, I tried to find issues related to technologies I was interested in or that I used. For example, I found some nice issues about converting React Native components out off React.createClass and removing TimerMixin, SubscribableMixin from React Native components.
⭐️ Trying to find issues that relate with you interest is a great strategy. I struggled in the beginning because I was looking for any repos, on any languages, etc. I soon realised that if I searched for something related to my skills/interests, I would be able to collaborate much more.
Another example, when I was looking into functional programming with Radma, it made sense to me to collaborate on radmda-adjunct utility functions. And when I was having fun using Gatsby, I was happy to know they were translating the docs to pt-BR, and I could jump into that.
Early this year Blitz appeared with a very appealing to me with its focus on productivity, simplicity and conventions to the React world. Having worked both Ruby and JS, I always felt we were messing something like Rails for JS. Naturally, I wanted this to succeed, so I tried to collaborate with it whenever I could. Although I have not worked on any big project, I was able to chip away some issues throughout the whole year.
At the beginning of this October, the dependabot updated a gem called better_errors, and some projects I use on work started to fail. Despite unblocking my team reverting the version, I took a step further to try to find the issue, and I managed to push a fix for it. I was not very bad, after all!
Lastly, I found a great project called rubyforgood, which is a collection of open projects dedicated to making the world gooder! How cool is that? Despite my contribution to that not even counting towards the event goal, I think I found something much more valuable, and I hope I can do way more for it soon.
None of the examples above would be possible if I have not gradually been more involved with the community and comfortable with jumping around open codebases. It gets more doable with time.
I learned a lot just by exploring different codebases and navigating the issues, but of course, tackling some of them and pushing the code changes required. All that helped me to be much more comfortable with new codebases, different stacks/paradigms, mental models, etc. And learn the way people solve various problems.
Another good thing that I thought the event created was a sense of belonging. For sure, a shirt might not be much of a big deal for a lot of people, but I soon realised that it created a sense of community for a bunch of others.
The event gradually brought every part of the community closer, and I think that is great. I started to watch various repositories, communities discussions, innovations and to filter way the desire to try re-write my apps every time a new thing popped up.
I believe there is much more space for learning and evolution on all sides of the event, and just time and practice will allow us to develop a better community as a whole.
The most challenging part is to start. So if you are new to it, then start small, because small issues and small PRs will lay the path for you to get comfortable. Try to find topics that relate to your interests/skills. Share your achievements. I'm bad at this, but I feel nice when others celebrate my accomplishments with me.
Fail fast and learn quickly. Try to hold your fear of failing, the more you fail, the more you learn as well. Ultimately you get used to taking risks and learn much faster.
Let's support our community, both maintainers and users in a healthy way 🙌. Let's keep this wheel rolling. There is still much left to be done, and do not wait for another hacktoberfest to start doing it!
Lastly, be open and stay safe. See you soon 👋
Let me know what you think about this post on twitter!