Open Source Software (OSS) is a term that describes software that’s freely available for anyone to use, maintain and improve. There are many technologies that we use daily that are Open Source. E.g Frameworks like Vue.js, & AngularJS Languages like Python, Java Databases like PostgreSQL eCommerce platforms like Medusa Operating Systems like Linux, and Mozilla Firefox What is Open Source Software
Why Contribute to Open Source?
You help organizations meet their development goals. OS has become an integral part of the tech ecosystem and helping companies meet their goals is a great way to be actively involved in the tech ecosystem.
It’s a great way to learn how development teams operate and get things done. You’ll learn the Git workflow, how to write issues, how to submit pull requests, and how to merge your contribution to the larger codebase, you’ll do code reviews, among other benefits
You network with more experienced tech professionals and fellow peers who can be instrumental in your career growth.
Common Challenges in Contributing to Open Source
Finding ACTUAL issues to work on
Oftentimes, you’ll go to a project’s issues tab and all you’ll see are user-generate issues with no idea how to contribute and no clear guideline on how to contribute, (even with a contribution guideline in place)
NOTE: user-generated issues, are issues raised by someone who’s not part of the organization and has expressed interest to work on them.
Too many issues, No clue where to start
The word “Open Source” can create an illusion that all projects are Open for everyone to contribute. So you might get frustrated when you check the contributing guidelines and discover that each project is unique, and has a strict process for contributing.
Not all Open Source projects are “Fully” Open Source
For example, FreeCodeCamp is an open-source platform but they are currently working with a closed group of contributors. Other OS projects may have restrictions on feature requests or only allow specific types of requests from contributors.
Other challenges include:
Difficulty in balancing Open Source projects with your commitments
Poor documentation on projects. (This can be a great opportunity to spearhead a project’s documentation)
Poor communication from maintainers. Especially when they close a project without notifying contributors early enough
Open Source Contribution for Developers
Beginner-Friendly
Reproduce & review bug reports
Review pull requests
Clean up issue pipelines. This helps in closing state or inactive issues
Advanced
Build new features for their platforms. You can join ongoing projects, and start working on smaller components before working on bigger features.
Create plugins
Code refactoring
Create an Open Source version of popular platforms
Collaborate with other developers to create a group Open Source project
Solve a problem you’re currently facing and make it Open Source
Open Source Contribution for Technical Writers
Beginner-Friendly
Write blog content for Open Source projects
Create Tutorials for developers using OS tools
Make documentation edits to remove errors, update code, or update tools used in the docs
Advanced
Create version or feature update documentation
New feature release documentation Integration guides (for when pre-existing software integrates with new tools). (Both Developers & Technical Writers can do this. Writing can be beginner friendly or advanced depending on the project’s complexity)
Step-by_step Guide to Finding Issues You Can Contribute to:
Check if the issues are often updated regularly - a daily to weekly basis is good Check the type of issues raised by taking note of the labels. It can be a bug, an issue where someone requests help, a feature request, etc
Filter the labels to your preference, e.g. documentation, (or docs), help wanted, etc Check the comments tab. Most times if there are comments, the issue is being handled by the people in the conversation. You can still check because some issues can be shared among contributors, or the contributor dropped off the project and they wouldn't mind someone else picking it up.
If the issue has no comment, open it and read through the issue report. If it’s still relevant, you can comment and ask if the issue is still active and if you can work on it. Turn on notifications for issues under the “Unwatch” tab. You will be notified when new issues are created Step-by_step guide to finding issues you can contribute to:
PRO-TIP: Find projects with issues created by company owners, lead maintainers or project leaders. If the issues are often raised by the senior team members, it means that you have direct access to the project’s maintainer. They can easily assign you upcoming issues to work on. To know this, check the person who posts issues - they often state their position in the project or company in their bio.
Join OS Slack channels or Discord servers to be in the know of product roadmaps and new releases. Contribute to OS projects that you use in your workflow. E.g. I started contributing to a startup because I used their UI templates & components in a tailwind project.
Check platforms like the Linux Foundation, Ovio, or Aviyel and identify organizations you’d like to work with. You can easily view the active status of a project to know how active they are.
Find community-active projects. These are Open Source projects that have a vibrant online community online, they hold regular office hours, the community leaders are supportive and responsive, and they communicate on those platforms regularly. Good examples are: Layer5 Jenkins Supabase Novu HQ Open Source Community Africa - They are a community, but they often create short-term projects for members to contribute to How to find (Active) Open Source Projects-Pt 3
Open Source Paid Opportunities
Contributhon by She Code Africa
This is a three-month Open Source program offered by She Code Africa. They partner with various OS companies and provide tasks that you need to complete during this period. Mentees are paid $500 for the 3-month program.
Google Season Of Code
This is an Open Source initiative by Google, where they partner with various organizations to run short-term projects that selected participants can contribute to. GSoC is a technically intensive program, where most organizations require you to have good experience in software development. Some organizations work with students, so it’s also great for people still in school.
Applications are currently closed, but you can get in touch with project maintainers to start contributing. This will build up your reputation and position you better for paid opportunities and the 2024 GSoC.
Google Season of Docs (GSoD)
Applications are currently ongoing. The projects will run for 3-6 months and technical writers will get upwards of $ 1,500, depending on the project. Each project is unique; some require extensive experience in technical writing, while others may not be so strict on their requirements.
Apply to jobs that favor Open Source Contributions
Most companies are now adding Open Source contributions as a nice to have in their job applications. You may contribute to projects for free, but the experience will make you stand out in interviews.
Contribute to Open Source Projects with Enterprise Divisions
These are companies that offer their product tires as Open Source/or freemium and premium options. They often scout for talent within their communities when hiring and will prioritize people with their product experience
In Summary
Don’t Just be a one-time contributor. Pick a project that you can scale with or that which you can grow with. Narrow down your OS projects to those that are relevant to your career growth. It’s a great way to make more impactful and significant contributions.
Work on projects that have active maintainers who are also keen on growth. You want to avoid projects where maintainers are not actively involved because it could lead to you working on stale issues.
Be intentional. Set time aside for Open Source. Use this time to dig deeper into projects, and learn more about them Making the most out of your Open Source Adventure: