Priyanshu Singh

Contributing to CNCF Open-source Projects: My Experience

Table of Contents

Why Contribute to CNCF Projects?

Contributing to open source projects can be a rewarding way to learn, teach, share, and build experience. There are plenty of reasons why you should contribute to an open source project, such as:

  • To find a mentor.
  • To learn new skills or improve on existing ones.
  • To share your skills.
  • To gain much deeper knowledge of technologies and tools.
  • To build up your reputation and help grow your career.
  • To learn from and work with, people having a great amount of experience and knowledge.
  • Plus, it's fun and gives you personal satisfaction.

Open source communities are built on the foundations of inclusion and collaboration. The CNCF community is no different. It enables you to participate in the conversations, contribute in multiple ways, and help in making it a breeding ground of talent and passion. CNCF is home to many fastest-growing open-source projects and some of the most used and famous software and tools.

How to start Contributing?

  • Familiarity with Git and Github: Learn the basics of git and github. Create repositories on github and play with git commands.
  • Knowledge of programming languages is not a requirement. Technical contributions are very important for open-source projects but non-technical contributions are equally important as well. Non-technical contributions can include adding or improving documentation, improving workflows, design-related issues, translating documentation, writing blogs, testing etc.
  • Select any project of your choice. Read about the project and have a look over it's contributing guide.
  • Join the project's communication platforms and introduce yourself. Mention the fact that you are new to the project and state your motivation to contribute to them.
  • Never hesitate to ask questions but keep in mind to not just simply ask questions without doing research or for the sake of it. If you ever get stuck anywhere, reach out to the people of the community and you'll be surprised by the amount of people offering you help.
  • Start by making small contributions. Don’t get overwhelmed by the massive codebase, nobody expects you to understand each line of code or each part of the project. Focus on the part/ code related to your contribution.
  • No contribution is big or small. Adding a new feature or improving particular documentation or even correcting some typos, all are equally important contributions and are welcomed by the community.

My Experience and Contributions

I began researching about CNCF to contribute to its open source projects. I spent some time looking over CNCF's various projects and sorting out which ones I'd like to start contributing to. But, because most of the projects used Go as their primary language, I sought other ways to contribute because I didn't know much about Go.

I began looking at issues related to documentation, testing and so on to get started, while also studying Go side-by-side to make technical contributions. I began contributing to projects' documentation, but I soon realized that many of the projects' websites were rather rudimentary and could be enhanced to improve the user experience. With that in mind, I began contacting project maintainers and expressing my desire to improve/redesign their websites for a better look and experience as I had some experience with web-development and making contributions related to it would be easy for me to start and I would be able to learn more about it. I was quite skeptical of their response and whether they wanted changes made to their websites. But I didn't expect the responses I got; everyone I contacted responded quite enthusiastically and warmly to my proposals, and they were pleased with my plans.

I began working on the improvements right away, and my changes were swiftly merged into the project repositories.

The fact that I contributed to and revamped websites that are visited and utilized by hundreds to thousands of people daily gave me a lot of satisfaction and motivation. Currently, I am an active contributor to Jenkins and several CNCF Projects such as Porter, Keda, Containerd etc and also planning to contribute to many more. I am working on enhancing the website's look, experience, performance, accessibility, and SEO.

Being an open-source contributor has been a very rewarding experience for me. I've met and worked with many people from all over the world and have had the chance to learn about and work with a variety of different tools and technologies. Although I am still very fresh in the open-source world, I am eager to learn more about it, contribute actively, and spread awareness of it among my fellow students.