Introduction
When the term “open-source” is uttered, what’s the first image that springs to mind? Is it a popular software, a specific application, or a language like React.js? Perhaps it’s the collaborative platform GitHub that you associate with open-source?
open-source refers to a type of software licensing arrangement where the source code is made freely available for inspection, modification, and enhancement by anyone. Unlike proprietary software, which keeps its code under lock and key, open-source software lays it all out in the open, fostering a collaborative environment. This code can be hosted on various platforms like GitHub, GitLab, and BitBucket, among others, and if you can view and modify it, then you are interacting with open-source software.
According to the GitHub Report of 2023, GitHub has:
- 100 million registered developers
- 372 million repositories
- 28 million public repositories
This means there are tons of open-source projects available to contribute to, but the question is how do you start? Let’s learn more.
Why open-source?
The first question that might come to your mind is, why open-source? What is the return for you?
Following are some reasons to contribute to open-source:
- Collaboration - contributing to open-source means you will be working with other people in a remote environment, which helps you learn how to work in a team.
- Community - collaborating together on a project helps build a community and lets you network and connect with people and also helps find a mentor.
- Personal branding - your collaborations are public; anyone can see them, and you can talk about it on social platforms, which helps with your personal branding.
- Career advancement - creating your branding and talking about your contributions helps you to connect with recruiters and industry experts, which leads to career opportunities.
In my first year of career, I contributed to Vercel’s Next.js, which was back in 2020 as a part of MLH Fellowship, and it has paid off in terms of many job offers.
Types of contributions
I see a lot of people trying to run away from open source because they think coding is the only way to contribute to open-source. NO!!!!
That’s not the case; coding is not the only way; if you’re not a developer, you can contribute in other ways. Following are some of the ways to contribute to open-source, other than coding:
- Documentation
- Designing (e.g. website)
- Translation
- Testing and giving feedback
Finding the right project
Out of 28 million repositories, you must find a project that interests you. Here are some of the ways you can use to narrow down the list of open-source projects.
- An active project - you should contribute to an active project, not one that has no activity for months.
- Aligns with your skills and interests - if you’re into JavaScript, look for JavaScript projects only.
- Properly documented - Look for projects with good
README.md
file and documentation to help you understand the project and how to contribute to it. - Engaging community - Contribute to the projects that have welcoming maintainers to ensure when you’re stuck, you get answers
Projects like Reactjs, and VS Code are huge, and it may take you several weeks or months to understand the work and make your contribution. Therefore, when starting with open-source, it’s good to start with a small project where you can start contributing in a few days or a week. Otherwise, you may lose the motivation.
Let’s take this project for example, khattakdev/capture. If you look at the repository, you will see a nice README.md
, which means it is well-maintained in terms of documentation. It gives a general idea of the project, reproduction steps, etc. As a JavaScript developer, this project aligns with my skills and interests.
Here’s an action item for you:
- Visit GitHub
- Find a project that aligns with your interest.
lang:javascript
and it will fetch all the issues that are based on JavaScript.
Creating a Portfolio
Once you start contributing to open-source, you have to talk about it, and flex about it 💪. This is crucial, and you need to put yourself out and let the people know about the impact you’re creating via open-source.
There are several ways to create your personal brand or portfolio; the following are some:
- Personal website - I recommend everyone to have a personal website, which has all of your work, about you, and social links. You can share your personal website with anyone that you meet (e.g. recruiter), and it will give them a complete idea of you and your work.
- Documenting your journey - Another important thing is to keep talking about your work on social media. This will help you to connect with people that you don’t know. Every time you post on social platforms such as LinkedIn - you get the opportunity to be noticed by people who didn’t know you before.
- GitHub Contributions - For software engineers, Github is a portfolio itself. Recruiters and engineers can view your work there and get an idea of the impact you have done.
Advancing to a Maintainer
Once you start making contributions and create a portfolio, there may be a time when you decide on taking a maintainer role. There are two ways to become a maintainer:
- Take someone’s project
- Create something of your own
Taking someone else project may require you to first have a good understanding of the project and the willingness of the current maintainer etc but the second option is easy. If you can think of an open-source idea, work on it and maintain it.
Once you become a maintainer, you will notice you’re managing more and coding less. This means you must maintain the overall project, plan the upcoming features and roadmap, provide feedback, etc. Moreover, you must build a community around your project, ensuring the community is welcoming and engaging and everyone must feel welcomed.
Think of your project from a contributor’s point of view. Ensure it is properly documented; people are getting reviews for their PRs; questions are being answered, new contributors are welcomed, and so on.
Networking
You started as a contributor, and now you’re a maintainer. By now, you have a good portfolio, but that’s not enough; you have to network and make connections. One of the ways that we already discussed in posting about your contributions and work on social platforms will help you to be found by new people. Following are some of the other ways:
- Hosting or attending events and meetups - If you can’t host a meetup, attend one, and make connections with new people. Exchange your contact info with each other and who knows if that connection can help you land a job
- Creating content - Create content around the projects you’re working on. This will help you to be noticed by others, and people learn about the product
- Collaborations - Collaborate with other industry experts, maintainers, and community builders to create more impact. The collaborations can be of any type, such as hosting an event, building something together, or creating a video.
Conclusion
Let’s conclude all this:
- Engage with open-source projects
- Build a solid portfolio
- Step into leadership roles
- Build a meaningful network
Where to go next:
If you want to get into open-source, opensource.guide is an amazing place to learn more about getting into open-source and making contributions.