If you are passionate about open source but don’t know how to get started with a career in this domain, this article is for you.
Did you know that 80 per cent of maintainers find it a challenge to recruit new contributors and 92 per cent employers find it difficult to hire open source talent? On the flip side, 52 per cent of developers want to contribute to open source, 33 per cent do not know where to start and 31 per cent think they aren’t skilled enough. As per data in the public domain, there is a lot of demand for people with open source skills. So let’s see how you can build a career in open source to fill this gap between supply and demand.
Building a skill
The start of this journey begins simply by building on a skill that you are good at. Many developers work with open source in their free time, building on unskilled areas and channelising these to tech fields. Skills like machine learning (ML), cloud native and Big Data analysis are in demand since many projects revolve around them.
Developers must try a lot of things, until they find what interests them. For example, I worked on mobile user interface (UI) and Web development (including front- and back-end), when I started working in the open source field. It did take a lot of time for me to figure out what I wanted to work on. So it’s important to follow what interests you, and explore different areas by learning and building projects. A theoretical tutorial may not be as helpful as building practical projects. The only way to skill up is to apply what is being learnt into a live project.
Once you have worked on a particular technology and project for a long time, it is the perfect time for analysis. If a project is uninteresting, it may be better to quit. However, this can be a double-edged sword. There are chances you may find something of interest that will lead to a trade-off later. Once a proper analysis is done and a skillset has been shaped, the next step is to build your own projects.
Building a live project, irrespective of the content, has a lot of value. But remember, once it is open sourced, the public response should not be a factor that decides your next step. And whether you build a UI for an application or just document a list of proper notes, resources and URLs, your work can be of great help to open source users.
Learning about different tools helps build open source projects to a great extent. Hence, it is important to learn everything about version control systems, Git, GitHub and GitLab (where most of the projects reside). With sufficient tutorials available on the Internet, I have collected a few that can be found at navendu.me/osidays. One needs to ‘learn in public’ by documenting and making your findings public.
Building a career
You can build a career in open source in broadly three ways.
Build, scale and monetise your own open source project: Identifying and solving a problem is a good rule of thumb for building your own project. Noting down the problems that others may face will create a demand for it. The size of the market for your project can be estimated only through trial and error. For new and individual contributors who do not have much funding, social media, blogs, posts and talks at conferences help reaching out to users to a large extent. These platforms can generate a lot of traffic for your open source project.
Funding plays an important role in almost all business models. The Mozilla Foundation relies on voluntary donations to fund its projects. MariaDB follows the business model of delayed open sourcing. Many of IBM’s open source projects follow the open core business model, i.e., the core of the project is open sourced while the surrounding add-ons are closed source and proprietary. Red Hat doesn’t sell code; instead, it sells professional services like support, tooling, and technical assistance around a project. These examples of business models can be adopted to build a project, open source it, and monetise it.
|“Do a maintainer’s job even if you are not a maintainer.”|
Work for a company that builds projects with an open source business model: Being a part of a community of contributors and maintainers, engaging in talks and participating in meetings will help you to contribute to a project. You can follow the guidelines for how the first contribution can be made, which doesn’t necessarily have to be code. Looking at a big code base may seem intimidating but starting small is the key here. Look for a problem and fix it. This will help you understand the contribution flow, code base, set up of the project, etc.
Non-code contributions are also valuable. People great at writing can contribute by documenting or writing for social media. Those who excel at designing, can design a convention, a colour scheme, or also work on creating a better user interface. Newcomers have a high probability of discovering bugs when compared to senior engineers. They can test, identify, and report their user experience, thus improving the project. Mentoring is another area. A lot of open source programs connect mentors and mentees, and help the latter make important contributions. Another option is being an organiser or a community manager, which means taking up the role of a project manager and ensuring that features are delivered exactly as intended, the roadmap is followed and the contributors are taken care of. Most open source projects lack proper management, since engineers don’t like doing that job.
There are a lot of internship programs that can help you make money, like Google Summer of Code (GSoC) and Linux Foundation mentorship (here, mentees are paid a stipend and can work full- or part-time based on their need). You can get a full-time role with a company you are interning with if you develop your skills well. For instance, if you are working on a project at Red Hat, there are chances of your getting hired full-time because you are already known there.
As Travis Oliphant, creator of NumPy, SciPy and Anaconda, says, “Build an open source project, get people to contribute to it, and hire from them.” This is how I got my full-time job too.
|Tips for contributors|
Get sponsored to work in open source: As an individual, if you are working for a project that is built by a company, you can ask for funding. It is important to note that only if your contribution is significant will the organisation be happy to sponsor you. However, if you have built your own project that has a significant user base, you could ask for funding from users.
As an organisation, you can raise money through platforms like Open Collective, Patreon and GitHub Sponsors, where people donate to your project. Open source grants like Linux Foundation and Mozilla Foundation also provide funds to support projects. GitHub has given 15 Indian contributors grants for their projects.
I built an open source project in a span of three months. This project went on to get featured on Product Hunt and JS Weekly and also got the #1 trending slot on GitHub. This project put me on a path to a career in open source.
Transcribed and curated by: Sharon Abhignya Katta