Many companies use code from open source projects in the modern world of software development.
This approach not only benefits those organizations but also different developers working on different projects. And it has created an environment where developers are able to work in a collaborative manner while also learning from each other.
Just like any other field of development, open source isn't easy if you don't know what you are looking for and where to look.
For the past few years since my first publication about How to Contribute to Open Source Projects – A Beginner's Guide, I have had people reach out, appreciating the article and how it helped them. There have been others who wanted more guidance on how to navigate the open source field.
Most questions that I get range from "How can I find the correct projects and programs to work on", to "Can I really make a living through open-source", or "Most programs I find aren't beginner friendly, how should I proceed?", just to mention a few.
Well, I can relate to these questions, because at some point I was in the same situation but never got the answers I wanted until later on.
If you're in the same situation and you have questions about open source, relax – I gotcha.
One thing that I can assure you is that participating in open-source can be beneficial if you find the correct path. That correct path can be either through joining a project or just contributing to a codebase. There are many ways to help. And then you'll have numerous opportunities to develop your skills and grow as a developer.
The good thing about open source is it accommodates everyone, whether you are a student, professional, or an open-source enthusiast. Open source projects can provide you with a unique platform for learning, collaborating, and showcasing your skills. After all, there is something for everyone.
With that said, let's get started!
What is Open Source?
Before we get started reviewing different open-source projects, let's first have a recap of what open source is and why you should consider joining in.
Open source code is code that is made available to the public to not only view and use but also modify and distribute under a permissive license.
As a developer, contributing to open-source can be rewarding and can help you learn, teach others, and grow your skills.
Apart from this, there are plenty other reasons why you should consider contributing to open source, including:
- You get an opportunity to improve the software you rely on daily.
- Through the process you can find a mentor if you need one.
- You will be able to learn new skills or improve on existing ones.
- You get to share and showcase your skills to others.
- In the process you can gain a deeper understanding of a given technology.
- It's a good way to build your reputation and grow your career.
Types of Open Source Projects
Now that you have an understanding of what open-source is and some of its benefits, let's learn about the different types of open-source projects that are available for aspiring contributors.
From education to internships to hackathons, there are numerous opportunities for you to improve your skills, gain practical experience, earn a living, and make valuable contributions to the open-source community.
These projects offer a unique opportunity for developers of all levels to learn and gain experience while working on real-world projects. The open source community is also a place where like-minded individuals from around the world get to connect and share.
Now, with so many projects available, it can be challenging for beginners in the field to know where exactly to begin. To make it easier, after a little research, I was able to classify the projects into six main categories, that is:
- Education and Training
- Internships and Mentorships
- Grants and Funding
- Community Building & Advocacy
- Research and Development
These categories house different projects, making it easier for you to know exactly what you are looking for.
If after reading this article you feel like I'm missing a certain type of project that might be helpful, you can head over to GitHub and add it to this repo dedicated to listing all open-source projects for easy access: Awesome-Open-Source-Programs.
Education and Training Projects
These projects present an excellent opportunity for individuals who want to learn and gain new skills, knowledge, and experience while contributing to open source and the community.
Some projects that fall under this category include:
freeCodeCamp's curriculum is designed in a manner that provides learners with practical experience building real-world projects while at the same time allowing them to contribute to open-source.
In return, learners get the skills and also get to earn a certificate which they can add to their résumés.
This particular project offers a wide range of resources including courses and certifications on various technologies. Some of the technologies that are given priority include Kubernetes, Linux, and Hyperledger.
The project's structure is designed to provide learners with hands-on experience and practical guidance, enabling them to build their careers on open-source technologies.
This project mainly focuses on teaching its mentees more about cloud-native technologies and how to contribute to open-source projects based on this ecosystem.
In addition to this, learners are also able to learn more about coding and documentation.
Its content is created and maintained by a large community of developers meaning it's open-source and anyone can contribute to it.
This is a 12-week project designed to run as a retreat. The program is open for anyone who wants to get better at programming. Whether you are a self-taught or a professional you will get an opportunity to work with people who share similar skills as you. The retreats are free, self-directed, and project-based.
This platform acts as the go-to place for beginners looking for guides on how to get started with open-source and contribution.
The site is easy to navigate with quick links to articles ranging from how to contribute to open-source and how to start an open-source project to building and maintaining open-source communities.
Internship and Mentorship Projects
These open source projects give aspiring contributors the opportunity to gain valuable experience while receive mentorship from people with experience in different fields.
In return, contributors who get accepted through applications get an opportunity to contribute to real-world projects, create connections within the open-source community, and sometimes get stipends for the work done. These projects will usually range from 10 weeks to 6 months.
Google Summer of Code (GSoC)
This program pairs students with mentors to work on open-source projects during the summer. The program has helped thousands of students gain skills and experience by contributing to a variety of open-source projects. In return, the participants receive a stipend for the work done and experience that can help in their careers.
Read out more about GSoC here.
Other programs that promote GSoC include:
This is an internship program that provides underrepresented communities with an opportunity to contribute to open-source projects. The program runs twice a year offering a three-month remote internship with a stipend at the end of the period.
Participants who get through the application phase get paired with mentors who help them along the way as they work on real-world projects, gaining experience in diverse fields including, software development, documentaion, UI/UX and more. You can read more on their website: https://www.outreachy.org/
Google Season of Docs (GSoD)
This particular program focuses on providing opportunities to technical writers who want to contribute to open-source projects.
The participants are paired with mentors from different open-source projects to improve on their documentation. The program runs for three months and provides stipends at the end of the period. You can read more on their website: https://developers.google.com/season-of-docs
Rails Girls Summer of Code
This program mainly focuses on encouraging women and non-binary people to contribute to open-source projects.
The program takes three months and the participants receive stipends afterward. Through out the period, participants are paired with mentors who provide guidance and help where necessary. Here's their website: https://railsgirlssummerofcode.org/
Linux Foundation Mentorship Program (LFX)
This is a 12 week program that offers mentorship opportunites to developers who are interested in contributing to open-source projects. Upon completion of the program participants receive a stipend. Here's their Website.
Other mentorship programs that run under the Linux foundation include:
- Linux Kernel Mentorship Program
- Linux Foundation Networking (LFN) Mentorship Program
- Open Mainframe Project Mentorship Program
- Hyperledger Mentorship Program
Season of KDE
This program offers opportunities to everyone who wants to participate in both coding and non-coding projects that benefits the KDE ecosystem.
The program usually runs for approximately six months and offers a stipend to participants who successfully complete the program. Here's their website: https://season.kde.org/
Girlscript Summer of Code
This is a 3-month program conducted by the GirlScript Foundation. Its main aim is to change lives by imparting tech education and relevant skills while fostering diversity.
During this period participants contribute to numerous projects under the careful guidance of skilled mentors. Visit their website for more info: https://gssoc.girlscript.tech/
Free Software Foundation (FSF) Internship
This program presents participants with an opportunity to work closely with the organization staff on their interests.
According to the platform's site, its major focus is on campaign and community organizing, free software licensing, systems, and network administration, GNU Project support, and Web development. Read more here
X.Org Endless Vacation of Code (EVoC)
This program is similar to GSoc but with a few differences. EVoC mentorship can be initiated at any time during the calendar year and the EVoC board can fund as many of these mentorships as it sees fit.
Although they accept a wide range of projects, their major focus is on technical documentation. The program lasts for three to four months of contiguous nearly-full-time work. Read more about EVoC here.
Julia Seasons of Contributions (JSoC)
The Julia Seasons of Contributions (JSoC) is a seasonal program for mentoring students and other developers to contribute to the open-source ecosystem. Read more about JSoC here.
Summer of Haskell
The Summer of Haskell is a program initiated by Haskell.Org with the aim to reach out to students and encourage them to contribute to the Haskell community with the aid of experienced mentors.
The program has the same features as GSoC including mentorship and stipends to Haskell contributors. Read more on how to get involved here.
Summer of Bitcoin
This is a global program that offers online summer internships that focus on introducing university students to Bitcoin open-source development and design.
Over the internship period, participants get to learn how Bitcoin works, and how to contribute to Bitcoin projects. In return, they earn Bitcoin as a stipend and build a career in Bitcoin. Read more here.
Grants and Funding
One of the major challenges facing most open-source projects is finding sustainable funding.
Thankfully there are many grants programs that are available and ready to provide financial support to open-source communities and projects. Some of these programs include:
GitHub Sponsors is a funding platform that allows the developer community to financially support other developers and organizations who design, build, and maintain open-source projects. Read more here.
Mozilla Open Source Support (MOSS)
MOSS is a program that offers funding to open-source projects that align with Mozilla's mission. MOSS offers several types of awards including:
- Foundational Technology, which supports open-source projects that Mozilla relies on.
- Mission Partners, which support open source projects that contribute to Mozilla's mission.
- Secure Open Source, which supports open source projects that improve the security of the internet.
Read more here.
Igalia Coding Experience Program
This is a grant program specifically meant for people studying Computer Science, Information Technology, or Free Software, whether in a formal setting or an informal one.
Its main purpose is to give participants their first exposure to the professional world, working hand in hand with Igalia programmers and learning with them. Read out more here.
Community Building & Advocacy programs
Most open-source communities thrive on collaboration, inclusivity, and diversity.
To help achieve these goals, in recent years there has been a rise of community-building programs aiming to provide a welcoming and supportive environment for different people in tech while at the same time promoting a culture of inclusivity and diversity.
Some of these programs include:
- Open Source Diversity
- OpenSource Initiative
- Open Source Community Africa (OSCA)
- Open Source for America
- Processing Foundation Fellowships
- Open Education Week
Research and Development
If you are interested in research and development, these projects will help you get into that field. Most of these programs focus on advancing open-source technologies and innovation in various fields into solving real-world problems.
Some of them include:
Google Summer of Earth Engine
This is a research program targeting mainly university students and researchers from India. The participants of the program are offered an opportunity to work with leading research organizations that work to find solutions around issues affecting environment, water and agriculture.
The program lasts for a period of three months. After completion, the participants are awarded with a certificate of recognition, Earth Engine Swag, and stipend. Read more about the program here.
Free and Open Source Silicon Foundation (FOSSi)
The program's mission is to promote and assist free and open digital hardware designs and their related ecosystems. It operates as an open, inclusive, vendor-independent group.
Some of the projects under this particular organization include the ORCONF conference, the LibreCores portal for open-source hardware, and the PULP Platform for energy-efficient computing. Read more here.
Open Robotics Foundation (OSRF)
OSRF is an independent non-profit organization founded by members of the global robotics community. It's mission is to support the development, distribution, and adoption of open source software for use in robotics research, education, and product development.
Some of it's projects include Gazebo, Ignition, ROS, and ROS-Industrial. Read more here
The major focus of this program is to introduce students to open-source reinforcement learning programs and software development while working alongside researchers, data scientists, and engineers on the Real World Reinforcement Learning team at Microsoft Research.
Other R&D projects
- The Eclipse Foundation
- Open Summer of Code
- FOSSASIA Program
- Segment Open Fellowship
- Apache OpenOffice
- Career Opporunites in Open-Source
With all of these projects and programs, you can see how many opportunities the open-source community can present. All of these programs can help you develop your skills, collaborate with others, and most importantly create a positive impact on society by solving real-world problems.
If you are interested in exploring the projects listed above, make sure to read more about ones that interest you so you can find a suitable program that fits your expertise.
You can also join different online communities available and forums to connect with other contributors, learn from their experiences, and get support.
I hope this article points you on the right path, and inspires you to venture into the world of open-source. Remember, every contribution counts, no matter how small. So don't hesitate to get involved and start making a difference today!