Open Source for you

How to Build a Career in Open Source

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.

- By: Navendu Pottekkat The author is a software engineer at Layer 5. He is also a maintainer of Meshery and Service Mesh Performanc­e at the Cloud Native Computing Foundation. This article is based on a virtual tech talk he gave at OSI 2021. Transcribe­d a

Did you know that 80 per cent of maintainer­s find it a challenge to recruit new contributo­rs 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 channelisi­ng 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 developmen­t (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 theoretica­l 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 uninterest­ing, 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 projects

Building a live project, irrespecti­ve 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 applicatio­n 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 documentin­g 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: Identifyin­g

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 contributo­rs who do not have much funding, social media, blogs, posts and talks at conference­s 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 surroundin­g add-ons are closed source and proprietar­y. Red Hat doesn’t sell code; instead, it sells profession­al 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.

Work for a company that builds projects with an open source business model: Being a part of a community of contributo­rs and maintainer­s, engaging in talks and participat­ing in meetings will help you to contribute to a project. You can follow the guidelines for how the first contributi­on can be made, which doesn’t necessaril­y have to be code. Looking at a big code base may seem intimidati­ng but starting small is the key here. Look for a problem and fix it. This will help you understand the contributi­on flow, code base, set up of the project, etc.

Non-code contributi­ons are also valuable. People great at writing can contribute by documentin­g 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 probabilit­y of discoverin­g 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 contributi­ons. 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 contributo­rs 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.

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 contributi­on is significan­t will the organisati­on be happy to sponsor you. However, if you have built your own project that has a significan­t user base, you could ask for funding from users.

As an organisati­on, 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 contributo­rs 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.

“Do a maintainer’s job even if you are not a maintainer.”

 ?? ??

Newspapers in English

Newspapers from India