How to Start Contributing to Open Source with OpenTelemetry
Today, open source software is everywhere – from Linux-based servers, to Android smartphones, to the Firefox Web browser, to name just a handful of open source platforms in widespread use today.
But the open source code driving these innovations doesn't write itself. It's developed by open source contributors – and you could be one of them. If you're passionate about helping to grow an open source tool or application, or you want to gain some valuable coding experience that you can show off to prospective employers, helping to develop open source may be an obvious thing to do.
If you're new to open source, knowing where to start contributing might not be as straightfoward. This article leverages my experience with a vibrant community of open source coders who write the software that helps power BindPlane.
Understanding open source projects
Let's start with the basics: what is open source and what a typical open source project involves?
Open source is software whose source code is publicly available.
When software is open source, anyone can download, inspect and, in most cases, modify its code. This makes it different from closed source or proprietary software, which is usually released in the form of binaries – meaning source code is not publicly available.
It's important to note that open source software isn’t always free of charge. While it often is, most open source licenses allow projects to charge fees for downloading or using their code, as long as the source code remains public.
Most open source projects today host their code on platforms like GitHub or GitLab, where anyone can view it. In addition to storing a project's source code, these platforms also typically host a few other core resources, including:
- A README file, which describes how to compile and install the software.
- A CONTRIBUTING.md file, which includes guidelines on how to become a contributor to the project.
- A Code of Conduct statement, which establishes ethical guidelines for contributors to follow.
Some projects offer additional resources, like documentation about how to use software.
Why contribute to open source?
There are two primary reasons for contributing to open source.
The first involves a selfless impulse to give back by helping to develop software you use and love. If you've benefited from code written and freely shared by others, you might opt to pay it forward by sharing contributions of your own.
The second reason is career advancement. Especially if you’re new to coding, contributing to open source provides real-world experience that enhances your job applications. Plus, being an open source contributor may help you network by getting to know other programmers, potentially opening up further career opportunities.
Whatever your motivation, most open source projects will be happy to have you as a contributor as long as you follow their guidelines and add valuable code.
Prerequisites for contributing
To write valuable code, of course, you need at least basic programming skills. While you don’t need to be a top-notch hacker, some experience is crucial. If you're completely new to programming, it's advisable to develop an app or two of your own before writing code that you hope an open source project will accept.
Familiarity with the tools used to manage code in open source projects is also necessary. Most projects today use Git. Git helps multiple developers work on the same codebase simultaneously by automatically helping to keep code in sync and avoid conflicts. It also provides version control features, which make it possible to track how code changes over time and revert to an earlier version if desired. Git can even be used to automate workflows using a technique called GitOps, but that's a topic for another day.
Finding the right open source project
Once you've confirmed that you have the prerequisite skills to contribute to open source, you'll want to find a project to contribute to.
If there's a project you're passionate about because you use its software or believe in its mission, it's an obvious good candidate to consider. If not, you can browse projects on GitHub or GitLab. Sites like goodfirstissue.dev, which offers a curated list of open source projects, may also lead you to a project that fits well with your skills and goals.
As you assess projects, think not just about what the project does, but also which technologies it uses. For instance, do you know the programming language or languages it uses? If the application it develops uses a microservices architecture, are you familiar with that approach to application design?
Check as well how active the project is. If a project hasn't seen any new code contributions in months or years, it's likely that its developers have abandoned it, and that any contributions you attempt to make will never be reviewed. In that case, you could fork the project to revive it, but taking over someone else's project can be a tough task; you probably shouldn't do it until you've gained some experience working within open source communities.
Getting ready to contribute
Once you've chosen a project, read its contribution guidelines, if they exist, to learn how the developers expect you to contribute code. The guidelines might explain how to set up a development environment on your computer that is compatible with the project's tools, for example.
Smaller projects may not have contribution guidelines, in which case looking at past contributions (which you can typically track through Git) is your best bet for getting a sense of how programmers contribute to the project. The project may also have a mailing list where you can ask about contributing – but be sure you've read through the project's resources first so you don't ask questions answered elsewhere.
Making your first contribution
When you're finally ready to make your first contribution, start by deciding what, exactly, to contribute. In most cases, it's wise to look for a request from the project, rather than developing an unsolicited feature or enhancement. Many projects describe goals using tools like GitHub Issues, so check there to see if there are specific requests you can work on.
After writing the code to implement the contribution, submit a pull request. This is a formal notification to the project that you'd like it to integrate your code. As a best practice, include notes with your pull request explaining what the change does.
What happens after your first contribution
Open source projects have varying processes for reviewing pull requests, and some approach them in a more systematic or standardized way than others. In general, however, expect that existing contributors to the project will review your pull request, a process that could take anywhere from mere hours to weeks, depending on how much time the developers have to devote to the project and how complex your code is.
The project may accept the contribution outright. If not, the developers will ideally provide feedback and identify changes they'd like you to make to improve your code. If not, though, don't take it personally or as a sign that the project doesn't want you to contribute. Most open source projects are volunteer-run, and code reviewers don't always have time to offer feedback. If your pull request was rejected without comment, consider assessing your code yourself to determine why it might not have made
When your code is accepted – which we hope it will be – the project's developers will merge it into their codebase. This means your code has become an integral part of the open source application or platform – and that you should celebrate your success in making your first successful open source contribution!
Continuing contributions and staying involved
Making a first contribution to open source is great. What's even better is continuing to make contributions over time. The lifeblood of most projects is contributors who stick around for years and get to know the technology and culture in depth.
Staying involved with a project can be as simple as continuing to make pull requests. But if you want to level up your engagement, consider applying for a leadership role, such as one where you help review code from others or plan the project's future direction. The process for becoming a leader varies because projects have different governance structures, but in many cases, you'll qualify once you have made a certain number of successful pull requests.
Get started with open source!
For newcomers, contributing to open source can seem challenging, but mastering some foundational concepts and practices simplifies the process.
We would know. At BindPlane, open source is at the core of our approach to observability, which is why we maintain dozens of GitHub repositories where anyone can contribute to the code behind our monitoring and observability tools. It's also why our platform is powered by OpenTelemetry, the open source, community-developed standard for collecting telemetry data.
If you're as passionate about open source as we are – and/or if you want some hands-on experience building software that plays a critical role in helping businesses around the world manage software performance – we'd love to work with you as an open source contributor. To find out whether one of our projects could be a fit, learn what our solution, BindPlane, is all about. Questions? Join our Slack community and chat with one of our developers.