The best thing you can do to boost your skills
During my career as a software developer, I started getting involved in some open-source communities and being an active contributor, I never thought to myself that it will leverage my knowledge and experience to that level it did.
In the spirit of open-source, I co-founded Memphis.dev together with my 3 best friends from college - A 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. 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.
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.
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. Among the backed projects you can find Kubernetes, Prometheus, and much more. It is a really good place to find some interesting projects to start contributing to.
The contribution process
- Find a nice project for example Redis, NATS, Memphis{dev}
- Get connected with the project’s community (Slack channels, Discord, website, GitHub repo, etc.)
- Search for contribution guidelines. Often a file located within the project's main repo called CONTRIBUTING.md
- Fork the GitHub repository — Create a copy of the entire repo on your GitHub account
- Creating a separate branch from the main branch
- Code your changes (bug fixes, new features, etc.)
- Push your changes
- Create a pull request of your branch to the upstream repo
- Get your PR reviewed by one of the repo maintainers (Usually happens automatically)
- Fix issues and comments left by the maintainer
- Awaiting your code to be merged
- Celebrate your first contribution with some cold beer :-)
Originally posted on Memphis{dev} blog
Special thanks to Idan Asulin for this amazing article!
Top comments (5)
Personally I don't see how "For developers without any former experience working with open-source products" can contribute directly to rather complex projects as CNCF.
I know it sounds like you must to be a pro before you’ll have the ability to contribute code to such projects. But let’s remember that every giant project has also simple bugs tagged by the maintainers as a “good first issue”. Those issues are usually very simple and supposed to make your first contribution as smooth as possible
It takes bravery to open a PR for something that may seem trivial, but as someone who's managed open source communities I'm (almost as) appreciative when a newbie creates a PR that fixes a typo as when a grizzled veteran fixes a bug.
Thanks for sharing
thanks for writing :)