Diving into Open Source Software

Sherman Hui
Sep 18 · 6 min read

Contributing to open source software is a gratifying experience and an excellent opportunity to distinguish yourself. It’s a rewarding way to keep your skills sharp, an avenue to gain and share experiences in all aspects of software development, and a source of inspiration and support from like-minded people worldwide.

A screenshot of my very first pull request on Oct. 19, 2015
A screenshot of my very first pull request on Oct. 19, 2015
My very first pull request on the same course content I was learning from!

So why don’t more developers participate? Perhaps it’s because of a lack of dedicated time or because it seems too complex to tackle an issue in a foreign project. In general, contributing to open source projects can be initially intimidating. My first time contributing to open source was nerve-wracking as I made it during my course on Front End Development at Udacity. I had just learned about package management and the difference between `dependencies` and `devDependencies`; I noticed a package in the course repository was installed twice and made a pull request to remove it. As a fledgling developer, I was beyond nervous, but the excitement of immediately applying what I learned pushed me over the edge to give it a shot. By the time you’re done reading, I hope you’ll be as excited I was in 2015 to make your first contribution to the open source community!

Why should I Contribute?

Bart writing “Contributing to open source is fun and rewarding” on a chalkboard
Bart writing “Contributing to open source is fun and rewarding” on a chalkboard
Repeat after me — contributing to open source is fun and rewarding!

Before getting into how — let’s talk about why and touch on some of the benefits of contributing to open source.

Contributing to open source oftentimes requires diving into the source code of a project. This helps you understand the inner workings of a project and its technologies at a deeper level. As a result, if there’s poor documentation surrounding a project, you’ll become more comfortable finding the answer in the source code (and even make a pull request to fix that documentation 😉). There may be even opportunities to apply newly learned patterns and best practices in your projects!

Open source contributions are opportunities to grow your skills outside of the confines of the day-to-day problems presented in your current role. It’s also an outstanding way to display your skills to your current employer or potential employers. Your contributions are a public and tangible indication of your skills. It’s also a signal of traits employers and teammates look for — working effectively in an existing codebase, being passionate about technology, and being actively involved in your industry.

Perhaps you’ve run into a bug or a missing feature with a project you use regularly. Think about all the hours that have gone into creating and maintaining the project. This is an opportunity to give back and to improve a project you currently use! Opening an issue or submitting a pull request to fill that gap will benefit the broader community and improve the developer experience for all users. Your contribution may even save someone a lot of time or effort. How awesome would that feel? Wouldn’t it also be great to see your name among the list of contributors to that project?

Contributing to open source is a way to give back in return for using the free software we use daily — even NASA uses open source projects! Many open source projects are maintained and managed by volunteers. Giving back some of your time and skills is the best way to help these projects survive and thrive. Lastly, getting involved with the open source community is a great way to make connections and collaborate with developers worldwide. Sometimes these conversations on Github turn into real-life connections that can lead to exciting side-projects, mentor/mentee relationships, or even new job prospects.

How Do I Get Started?

The first contribution is likely to be the most daunting, and it can be hard to figure out where to start. Here are some pointers to help make your first contribution — but first, a cheesy quote.

千里之行,始於足下

- Laozi

roughly translated to: “A journey of a thousand miles begins with a single step”

The best thing to do when looking for a project to contribute to is to look at the projects and libraries that you use the most frequently. This is usually a great place to start because you have first-hand knowledge of potential bugs or areas to improve on. Try and see if you can make that patch yourself; you and your co-workers may even benefit from this directly! Personally, I’ve been spending a lot of time on React Testing Library’s documentation, so I’ve been looking to make more frequent contributions by improving the documentation and adding examples where I can!

If you’re thinking, “Great! I use React every day, let’s start there!” for individuals just getting started or first-time contributors, a project like React or Redux may not be the best introduction to open source. I recommend looking for projects with issues labelled “First Timers Only” or “Good First Issue.” Here are some resources that may help you find those types of issues:

  • First Contributions — A repo that acts as a tutorial to help first-time contributors go through the contribution workflow. You’ll have contributed to the project after completing the tutorial!

After finding a project and an issue, make sure to check the repository’s CONTRIBUTING.md file for contribution guidelines before tackling an issue and submitting a pull request! This file will let you know what kind of contributions the project will accept and other relevant contribution guidelines such as code of conduct, best practices, signing a Contributor License Agreement, and steps before submitting a pull request, i.e. running test suites or formatting and linting code.

Another tip is to start small — contributions don’t strictly have to be code either! A great place to start is documentation; this is an excellent low-effort and high-value area to contribute to. If you’ve noticed a typo or something missing in the documentation you’re reading every day — take the opportunity to fix it up! Everybody loves great documentation.

Hacktoberfest 2020 logo banner
Hacktoberfest 2020 logo banner
Hacktoberfest 2020 is the 7th year this event has run!

You can also dive into the world of open source through participating in this year’s Hacktoberfest! Interesting fact, Hacktoberfest 2018 is how I got myself more involved with open source software! So, what is it? Hacktoberfest is a month-long celebration of open source software run by DigitalOcean, aiming to change the world one pull request at a time. Head over to their website to learn more and sign up with your email!

If the benefits listed above weren’t enough to convince you to make your first contribution — Hacktoberfest gives out a sweet limited edition T-Shirt and stickers for the first 75,000 individuals who make four Pull Requests! Make sure to look for the “Hacktoberfest” label on the issue to ensure it counts towards the four pull requests. Be sure to check out the Hacktoberfest values as well before participating!

“Hacktoberfest is all about encouraging meaningful contributions to the open source ecosystem — for beginners and veterans alike.”

Finally, don’t hack alone! RSVP to Procurify’s Hacktoberfest themed meetup on October 15th. We’ll be gathering to learn more about open source and how to contribute and participate in Hacktoberfest together by helping everyone make a pull request to an open source project!

Final Thoughts

I highly encourage and recommend everyone to get involved with the open source community and make your first contribution! It’s challenging, great for personal and career growth, and most importantly, it’s a fun way to give back to the community! Don’t forget to RSVP to Procurify’s Hacktoberfest themed meet up to gather and participate in Hacktoberfest!

A great way to start with open source is to participate in Hacktoberfest. The best way to stay actively involved in the open source community is to make consistent contributions that improve the software you rely on and use regularly. You may even become a core contributor to that project one day!

I’m looking forward to all of your contributions, good luck and have fun!

Procurify Product and Engineering Blog

Our mission is to be the company in Vancouver where the best technologists want to work.

Sherman Hui

Written by

Procurify Product and Engineering Blog

Our vision at Procurify is to reinvent the way organizations spend. We are a group of passionate software engineers, engineering managers, product managers and product designers trying to make a difference on how companies spend. Learn more about us: https://www.procurify.com/

Sherman Hui

Written by

Procurify Product and Engineering Blog

Our vision at Procurify is to reinvent the way organizations spend. We are a group of passionate software engineers, engineering managers, product managers and product designers trying to make a difference on how companies spend. Learn more about us: https://www.procurify.com/

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store