From the Development Team

Oct 29, 2019

Open-Source Projects and Lessons from Hacktoberfest

By Denver Smith

Each year in October, thousands of developers work together to create and improve all kinds of software projects as part of Hacktoberfest. It’s a worldwide hackathon event that’s organized and sponsored by Digital Ocean, and Dev. Underbelly joined in on the fun this year and hosted four official hack nights for the local community here in Salt Lake City. At its core, Hacktoberfest is a celebration of open source software.

Open Source is Awesome

We value open source software because many of the tools that we use are in fact open source. The fact that people from all over the world work together to create programming languages, software libraries, frameworks, and applications is incredible. This doesn’t just happen in October during Hacktoberfest, but all of the time. We all benefit as a result, whether you’re a developer, designer, or really just any person using technology.

How does it all work? An open source project is hosted somewhere public. GitHub is a popular place to host projects, and you’ll find all sorts of projects from individuals and companies on there. A typical open source project usually consists of a few things:

  • The code itself!
  • Documentation (hopefully!)
    • This includes instructions about how to set up or use the software, as well as guidelines for how to contribute, along with any additional pieces of information someone would want to know about the project.
  • Issues - These could be feature requests or bug reports. Project maintainers use issues to keep track of the work that needs to be done.

A project can have anywhere from one to a few thousand different people involved in maintaining and improving it. Contributors often use a version control system, called Git, to interact with the project. Git helps many people work on the project at the same time, without overwriting each other’s changes.

I would recommend checking out Digital Ocean’s Introduction to Open Source guide if you are interested in learning more.

Learning Together

It was fun to meet and interact with the local development community over the course of the hack nights this month. Since Hacktoberfest is a worldwide event, participants can work from anywhere they would like to, but it’s still fun to congregate. For many hack night attendees, this was their first time contributing to open source, so it was a great opportunity to help each other out. Most of the nights were spent helping each other find projects, and learning about git.

I have participated in Hacktoberfest for a few years now, and it’s something I look forward to every October. It’s exciting to discover all of the different projects that are hosted on GitHub, and searching for projects that I want to contribute to feels like a treasure hunt. It can be a challenge to find the “right” project, but it’s satisfying when it happens. Here are some things that I look for, or try to keep in mind when searching:

  • What programming language(s) are used in the project?
  • Can I at least get the application to run on my machine?
  • Do I understand what the project is?
  • Are the project’s issues descriptive enough for me to be able to understand what the problem or requirements are?
  • Have I had any experience with a similar issue, or is this a problem I am interested in solving?

Project Highlights

This year, I was able to find and contribute to a web application called OpenPace. It allows runners to set goals and track their progress. This was a great find for me because I love running, but also the technology behind the app is something that I am excited about. I was able to add a small feature and fix a few bugs along the way. Check out the source code on GitHub!

I also had fun creating a silly little game. It started out as a really basic version of Snake. I decided to open it up to the broader development community for collaboration. So, I made a few issues on GitHub, describing the features I wanted, then tagged them with #hacktoberfest to help other developers easily discover the project. I was amazed to see how many people had contributed to the game. In total, sixteen different people added some cool features, like music, sound effects, animation, and performance improvements.

One hack night attendee shared some improvements that he was able to make to a baby carrying inventory management system, a project headed up by a group called Ruby for Good. He explained how he found the project on GitHub and decided to start out with some small changes so that he could get to know the codebase, then he was able to contribute more and more.

That’s a great strategy when it comes to contributing to open source software. Even small changes have a lasting effect. Great software is almost always the result of many people working together, making small, iterative improvements.

Prizes

Underbelly sponsored a raffle for our hack night attendees, with the grand prize being a Nintendo Switch Lite! Raffle tickets were awarded based on attendance, as well as Hacktoberfest contributions. We created a small script to make the raffle drawing a little bit more suspenseful. Of course, there’s also the beloved limited edition Hacktoberfest t-shirt that DigitalOcean awards those who complete the challenge (submit four pull-requests during October). Developers love swag, and this is a great way to help encourage involvement in open source software.

Thanks!

As October and Hacktoberfest comes to an end, we want to give a huge thanks to all of our hack night attendees. We hope everyone who came was able to mingle with members of the community, learn something new, and get inspired about open source software. It’s true that this event is coming to a close, but coding will continue to happen. Big thanks to DigitalOcean and Dev for organizing this awesome event as well. I’ll be looking forward to my t-shirt!