Hey! I am Naman Lakhwani, an undergraduate student at the Indian Institute of Information Technology, Gwalior. I was a Google Summer of Code participant and a Linux Foundation(LFX) mentee in 2021 with the Cloud-native Computing Foundation (CNCF). This blog is about my experience contributing to several CNCF projects. The objective of this blog is to document my experiences and help others start contributing to the CNCF projects or any large open-source project.
👉 Why should you contribute to CNCF projects?
CNCF serves as the vendor-neutral home for many fastest-growing open-source projects. It has a solid and welcoming community. The folks here are always ready to help each other in any way possible. CNCF also participates in various awesome and well-paid open-source mentorship programs, such as LFX mentorship (previously known as Community Bridge) by the Linux Foundation, Google Summer of Code, Outreachy, and Google Season of Docs.
Contributing to any open source project helps build your resume and learn new skills. You can even make an open-source section in your resume and list all your contributions under that as proof of work, which would make your candidature strong for any opportunity you apply to. In open-source, you get a chance to contribute to well-maintained projects and an opportunity to collaborate, network, and work with great software developer engineers from top MnC’s around the globe 🔥.
I believe this much is enough to motivate you to start contributing to the open-source world. No?
👉 How to start contributing to the CNCF projects?
The below steps focus mainly on the code contributions, but there are various other ways to make non-code contributions.
Learn Git: Create a practice repository on GitHub and play with all the Git commands to become comfortable with it.
Learn GoLang: Almost every CNCF project is written primarily in GoLang; if you know C/C++, it won’t take more than a couple of hours to learn the basics of GoLang. You can learn the advanced part while contributing. A Tour of Go is a good resource to start with.
Select a project: You can pick any project of your interest from the list provided here.
On the GitHub repo of your selected project, go through the readme file and documentation to learn about the architecture and essential core components, try to set up the project on your local machine following the given instructions. Project deep dives are also very useful; look for them in CNCF’s YouTube channel.
Join the project’s slack channel and say “Hi” with a small introduction of yourself. While following step-4, if you face any difficulty, feel free to ask in the channel. Also, don’t forget to attend their contributor’s meetings.
Pick an issue: You can filter out the beginner-friendly issues with the “good first issue” label.
Start small: even a typo or any one-line correction is acceptable. Don’t get overwhelmed by the massive codebase; nobody expects you to understand each line of code, also, it’s not required; just focus on the code related to your issue.
Ask questions: If you get blocked, don’t feel shy to ask your queries publicly. Some points to keep in mind while asking questions 🔖 :
- Don’t ask to ask, just ask.
- Your mentor should never answer anything easily available on the internet, so do your homework before asking any question, else you would not be able to understand their answer.
- Provide complete reference; avoid using this or that.
- Have patience; folks in open source work from different time zones, also some work in their free time only, so don’t expect a quick answer to every query.
- Never DM anyone until it’s urgent or personal.
- For a particular issue, if you make some changes and do not feel confident of the code you have written, don’t worry; instead, open a pull request, wait for the reviews and iterate over them to make your changes perfect to be merged.
You can find all information regarding the past and future mentorships in CNCF in this repo: cncf/mentoring. You can also use this repository to select a project for yourself as it also contains the list of previously selected projects. All the announcements 📢 regarding mentorship programs are made on the #mentoring channel of the CNCF slack , so do check it from time to time. Also, follow the Twitter handles of CNCF to get more involved in the community @CloudNativeFdn and @CNCFStudents.
This collection of Twitter threads on contributing to open source contains some handy tips, resources, detailed information regarding mentorship programs, and multiple career opportunities waiting for you in open-source.
Just be consistent and you would be able to complete all the action items mentioned above 💯. I hope this blog will help you start your journey in open-source. Feel free to comment if you need further guidance 😄.
Until then…