Contributing to Open Source: The Ultimate Developer's Exercise

Introduction

I have recently got the opportunity to contribute to an Open Source project. It was an enriching experience both as a human and a developer.

You can have a look at my contributions on the following links:

In this blog, I will share my learnings and how I got into contributing.

What is Open Source?

A popular misconception about open source projects/programs is that they are free solutions and nothing more. Unfortunately, people are missing the essence of open source.

Open source refers to the practice of making the source code of a software freely accessible to the public. This is done so that anyone can read, modify and share the source code.

The Open Source approach allows the community to improve the code stability and security, add features that the initial team might not have thought of and in some cases, contribute to the documentation among other.

Open source has had a significant impact on the technology industry, driving innovation, collaboration, and the democratization of software. It has transformed the way software is developed, distributed, and consumed, creating a vibrant and dynamic ecosystem of open source projects. 

Open Source needs you as much as you need Open Source.

Why contribute?

1. Giving Back and Paying it Forward

I have been using Open Source technologies from my university days. I was always grateful to people who have made them accessible and also to those who helped maintained them.

Now, having contributed in my turn felt like I was honoring this tradition that helped me grow. I also felt that my contribution is a way to participate to the common good, share your knowledge, and help others succeed.

As developers, it is important to assist others in their growth.

2. Code Quality and Peer Review

Open source projects are sometimes huge and are used by thousands of people around the world. For this reason, the code review process and quality assurance are also very strict.

Your PR (Pull Request; this is the process of sending your changes to be merged) is reviewed by one or many experienced developers. They will provide feedback and suggestions if need be, so as to maintain the high code quality. This process can enhance your coding skills and promote best practices.

I was also amazed by the number of automated tests and checks done on my PR. This makes total sense on large projects. Some of those automated tasks were completely new to me and are things I would also like to implement in my job.

3. Making an Impact

Many fields rely on Open Source technologies.

One such technology is the Python programming language. Python is used in the medical field for creating machine learning algorithms that assist in diagnostics, among others.

Imagine contributing to such projects that can change the lives of so many people and families.

4. Collaboration and Networking

Software engineers should not work in silos. This is detrimental to their growth.

Open source projects are often driven by collaborative communities of developers worldwide. Contributing to open source allows you to connect with like-minded individuals, share knowledge, and collaborate on challenging problems. It provides opportunities to network, build professional relationships, and expand your connections in the tech industry.

How to get started

You should contribute to such projects because you feel that your contribution is valuable to the growth of developers and communities.

In the following points, I will share with you how I got into contributing.

1. Find your field of choice.

For instance, I like using Microsoft Azure since all its services enhance the developers' experience. I have recently investigated Azure Monitor and Azure Application Insight for analytics on web applications.

2. Explore and experiment.

I build POC whenever I want to learn something new. This hands-on experience gives the possibility to question to what extent can a technology be used.

In my case, I wanted to implement Application Insights in an Angular app to get its logs.

3. Look for available resources

Once the plan for the POC is done and my goals well defined, I would look for available resources online (articles, blogs, videos or StackOverflow).

Then, I start the implementation.

4. Hit a rock

During the implementation phase, you may find some hiccups in a feature, or the feature that you need does not exist in the Open Source code you have decided to use.

Having access to the code, I can add your own implementation on top of it to fix the issue you have found or create the required feature.

5. Share it with the world

After completing your implementation in the Open Source code, you will test it to the best of your ability to make sure it is not buggy.

The new code you have added will potentially help others. It is important to share your them with the community.

This is when you decide to send your codes in a well-documented Pull Request (PR)

After sending the PR, the reviewers will check them, and if everything is considered useful, your code will be added to the project.

Conclusion

In this blog, I have shared my experience with Open Source and how I got into contributing. This is not a fixed set of steps but can be used as a starting point.

In conclusion, contributing to open source is a fulfilling and enriching experience that helps both you and the wider community.

Ultimately, this contribution is not just about writing codes; it is about becoming part of a community, embracing a culture of collaboration, and making a positive impact on the software landscape.

So, dive in, explore the projects that resonate with you, and join the ranks of passionate contributors shaping the future of open source software.