I've been a keen user of open source software for years, always conscious that I'm not giving much (if anything) back.  In 2018 I learned about Hacktoberfest, run by DigitalOcean, and decided I'd try to get involved.  As part of Hacktoberfest you have to submit five pull requests (PR) to repositories (repos) on Github.

Rewards for Hacktoberfest include a t-shirt, stickers and coaster.  I'm quickly realising that working in IT means, if I play my cards right, I never have to buy casual clothes again (I picked up four at Infosec).  During Hacktoberfest there was more than just the official DigitalOcean shirt on offer - there was a Microsoft shirt available too, along with a whole bunch of others.  A friend of mine (Mike) managed to achieve something like five t-shirts.

My Hacktoberfest 2018 swag, plus other stickers.

While I might look confident in my own development abilities, I do suffer with some self-doubt.  I often look at some larger parts of projects and think "hmm, that'd be better if it's done by X" as I'm not confident I'll implement the feature correctly (or manage it at all).  Looking at some projects on Github I found them interesting but considered them way out of my league.  My advice is to start small and work your way up as your confidence grows.  That method has worked for me in my development career (albeit a hobby).

What I didn't want to do was simply submit five inconsequential pull requests to repos - I wanted my contributions to be useful.  In the past I've contributed to Nixpkgs, which is the software repository for NixOS and the Nix packaging system.  Initially I started contributing to that repo because the software I used for development work was outdated, so it made sense to submit further changes to that.  Excitingly (for me anyway) I've had quite a few commits approved for inclusion in Nixpkgs, across various kinds of software.  For Hacktoberfest I committed some clarification to documentation and also added support to the GRAMPS package for recommended supporting software.

I hadn't considered before that documentation would be valued in these projects, yet searching for issues tagged Hacktoberfest showed a lot of documentation based requests.  Obviously there were more complex, development, based tasks but being able to join in without guru-level knowledge of programming languages is really cool.  Most of my commits during this period (I only made seven) were documentation related.  Clearly it's true developers prefer to write code rather than the docs!  Nonetheless, my changes should be useful.

To me it would seem there's an element of gaming the system in order to get free swag, with some projects raising issues and tagging them Hacktoberfest for truly trivial things.  It's possible the people doing this were trying to make the event accessible to beginners but it didn't feel right to me.  For example, one issue I looked at simply said:

Correct the spelling of "and" , it has been misspelled as "an".
Add labels good-first-issue and hacktoberfest :P

It likely took more time to raise the issue than I spent fixing the typo, so arguably this could have been fixed rather than making an issue for someone else.  Given that I wanted my contribution to be more useful than correcting a single typo, I spent some time looking at the project.  It was clearly a fairly new project so there wasn't much to go on, but I did manage to find out what it was all about based on information elsewhere.  Correcting the typo and adding that to the readme (even a copy and paste of the description elsewhere) seemed valid to me, so that's what I did.  Sadly there don't appear to have been any commits to that project since November 2018 - it looked like it could have been a cool project so I hope it's not dead.

Microsoft bought Github earlier in 2018 and they were supporting the event by offering a bonus t-shirt for contributions to their open source projects.  Initially I wasn't so interested given I'm not Microsoft's biggest fan at the best of times, being much happier in a Linux environment.  Mike mentioned he'd committed to a Microsoft repo and I'll confess to not wanting to be out done there!  I quickly looked at possible options, narrowing my search to Microsoft languages I was actually comfortable with, and settled on PowerShell (I wrote PSLogonFailures in it, so am reasonably happy with it).  Again I settled on documentation and contributed information on some pitfalls one might find when trying to run a script downloaded from Github.  My submission can be found here, and I was actually proud to have had that accepted and merged into the repo, despite my earlier comments.

My Microsoft PR earned me this t-shirt.

Would I do it again?

Hacktoberfest runs once a year and I'm looking forward to 2019's already.  Time is often a problem for me but I'll try to make sure there's some space in my diary to take part again, hopefully contributing to some other projects.  DigitalOcean have said they're looking at ways to cut down on spam submissions which will hopefully improve the quality of contributions to the open source community - that can only be a good thing.

If you're thinking about contributing to open source, Hacktoberfest can be a good opportunity, so I recommend it to you.  In my experience it's a non-threatening way to give something back to the open source community.  There might be some Hacktoberfest meet ups in your area too, so worth looking out for.

Banner image is the Hacktoberfest 2018 logo, by DigitalOcean.