How to contribute to an open-source project
Tags: opensource, github, contributorswanted, devrel
Published: 2022-07-05 08:38:20


One of the During my career as a software developer, I started getting involved in some open-source communities and actively contributor, I never thought to myself that it will leverage my knowledge and experience to that level it did.

Hence, in the spirit of open-source, I co-founded Memphis.dev together with my 3 best friends from college – A [message broker](https://memphis.dev/blog/grpc-vs-message-broker/) for developers made out of devs’ struggles with using message brokers, building complex data/event-driven apps, and troubleshooting them.

---

**What is an open-source software/project?**
Open-source software (OSS) is software whose source code in some shape is open to the public, making it available for use, modification, and distribution with its original rights. Therefore, programmers who have access to source code can change the code by adding features to the project or software, changing it, or fixing parts that aren’t working properly. OSS typically includes a license (Apache, BSD, MIT, GNU) that describes what are the constraints around the project and how “flexible” is the project.
Read more about it in [Snyk's article](https://snyk.io/learn/open-source-licenses/).

---
**Where to find interesting open-source projects to contribute?**

So usually OSS contributors start to contribute to projects they are making use of. For example, a developer who works with Redis finds it interesting to go deep into Redis internals, understand what’s going under the hood, fix bugs, or add new features.

Specifically for developers without any former experience working with open-source products, my personal suggestion would be to go over the CNCF projects page. CNCF is the foundation of cloud-native, open-source projects. Furthermore, among the backed projects you can find Kubernetes, Prometheus, and much more. Undoubtedly, it is a really good place to find some interesting projects to start contributing to.

---
**The contribution process**
1. Find a nice project for example Redis, NATS, Memphis{dev}
2. Connect with the project’s community (Slack channels, Discord, website, GitHub repo, etc.)
3. Search for contribution guidelines. Often a file located within the project’s main repo called [CONTRIBUTING.md](https://github.com/memphisdev/memphis/blob/master/CONTRIBUTING.md)
4. Fork the GitHub repository — Create a copy of the entire repo on your GitHub account
5. Creating a separate branch from the main branch
6. Code your changes (bug fixes, new features, etc.)
7. Push
8. Create a pull request of your branch to the upstream repo
9. One of the repo maintainers reviews you PR (Usually happens automatically)
10. Fix issues and comments left by the maintainer
11. Awaiting your code to be merged
12. Celebrate your first contribution with some cold beer 🙂

---
[Join 4500+ others and sign up for our data engineering newsletter](https://memphis.dev/newsletter)

---
Follow Us to get the latest updates!
[Github](https://github.com/memphisdev/memphis) • [Docs](https://docs.memphis.dev/memphis/getting-started/readme) • [Discord](https://discord.com/invite/DfWFT7fzUu)

---
Originally posted on [Memphis{dev} blog](https://memphis.dev/blog/how-to-contribute-to-an-open-source-project/)

---
**Special thanks to [Idan Asulin](https://twitter.com/IdanAsulin1) for this amazing article!**