Junior developers these days are tasked with building outstanding portfolio projects in other to stand a chance against the senior guys. While these might look so easy, note that not every project you put in your portfolio will make you stand out. Unless you are a front-end developer whose primary concern is building web applications with a beautiful interface and great user experience, you need an impactful project on your portfolio to go a long way.
Let's share more context on what I mean by impactful projects. These kinds of projects are projects that solve real-life problems. For example, the 17 sustainable development goals that was adopted by the United Nations in 2015 to bring impactful solutions to the world populace.
What is Open Source?
The term open-source refers to software that is available to the public. It means that the code of this software can be seen, modified, and distributed by anyone.
There are Organizations referred to as open-source organizations. These organizations have open-source projects that they duly maintain and manage. While anyone can contribute to these projects, The purpose of the organization is to moderate the contributions made by the public. Imagine these organizations as persons that build software and then ask the general public to help them improve it either by sharing ideas or contributing technically.
Their job is to filter these ideas and technical contributions to make sure it aligns with the project goals.
How Does Open Source Help me build a portfolio?
If you recall, I noted above that these open-source projects are available to the public for contributions. The best way to start is by contributing. These organizations usually have the code on a code hosting platform for version control and collaboration. It lets you and others work together on projects from anywhere. The most popular of these kinds of platforms are GitHub. You can look through the docs to learn how to get started.
These projects call for people from different skill levels to contribute. They are usually open issues to choose from that will fit your skill set. Even if you don't find any issues you feel comfortable with, research their projects to look for issues you feel need to be attended to and then ask to be assigned.
While working on the issues and getting assigned to more tasks, you are growing technically as well as contributing to a large codebase that will make you stand out in the eyes of recruiters. You can talk about your contributions during interviews or even include these open-source contributions in your Resume with outlines of the impact you made.
Since people from different skill levels are part of the open-source community of contributors, it is an opportunity for you to network and learn from more skilled people than yourself. You also get the chance to have your code reviewed as you contribute. These people will drop constructive feedback that will shape you as a better developer and contributor.
Who can contribute?
The answer is anyone. A basic understanding of the project is what is required. You can contribute through ideas or helping the community as a community manager and write technical content as a technical writer. If you can code even at the most basic level, then you are qualified to start making contributions.
How do I get started?
All you need is to go to the organizational repositories of these open-source organizations on GitHub and check out what project you will be interested in. Then go through their open issues and ask to be assigned.
I contribute to an organization called Layer5. It is an open-source organization that is building a service mesh. You can read more about service meshes in this elaborate article on Service Mesh Fundamentals.
I chose this community because of its uniqueness. If you are like me and like to be commended when you do a good job and to be treated like you are important, even if we are 1 million in the pool, then you should check out this community. I have to be completely honest, they are like family. They give room for anyone to grow from the ground up. You can join their slack workspace and check out their list of projects and the skills required to contribute to each here.
List of Open-Source Organizations to consider.
The list above is not exhaustive. There are open-source projects that I didn't mention above. You can see more organizations in the Google Summer of Code list of open-source organizations as well as the Linux Foundation Mentorship program.
For juniors looking for paid internships, there are open-source mentorship programs perfect for you. I already mentioned the Google Summer of Code and Linux Foundation Mentorship program..
I will write about how you can get into these programs in the future. For now, do your research, choose a project, and start building.
My advice for anyone just starting, the journey is a marathon, not a sprint. Therefore, take things easy, move at your own pace, don't stop building, and enjoy the process.
Feel free to add more open-source organizations or projects I missed above in the comments. Happy contributing.