paint-brush
Reflecting On My First 5 Months As An Open-Source Contributorby@kalebujordan
496 reads
496 reads

Reflecting On My First 5 Months As An Open-Source Contributor

by Kalebu Jordan May 10th, 2021
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

In the past 5 months, I began a new journey as an open-source contributor, and to date, I've contributed to 8 different python packages. My open source journey started in December 2020, when Vodacom released their public Mpesa Payment API. I'm going to share my story as 5-month old contributor with you here, along with my thoughts on why it's beneficial to contribute to open source. And why you should contribute too? And why should you too?

Company Mentioned

Mention Thumbnail
featured image - Reflecting On My First 5 Months As An Open-Source Contributor
Kalebu Jordan  HackerNoon profile picture

Hey there everybody,

Early in 2020 I started a journey as a Content Creator, where I've been writing technical content on Software Development — mostly focused on the Python stack.

In the past 5 months, I began a new journey as an open-source contributor, and to date, I've contributed to 8 different python packages.

I'm going to share my story as 5-month old contributor with you here, along with my thoughts on why it's beneficial to contribute to open source.

This article originally started as a thread on Twitter and then decided to turn it into an article regarding my journey as an open-source contributor. I hope you'll enjoy it, and take your time!

Start of the Journey: A lot of Googling and StackOverflow

My open source journey started in December 2020, when Vodacom released their public Mpesa Payment API.

I was looking for a way to integrate with python I came across their implementation for a python wrapper.

I hardly understood it, and usage seemed unpythonic to me.

It was then that I then convinced myself it could be better than that, and immediately started my very first open-source project (pypesa), for its re-implementation.

It wasn't easy — a lot of googling and StackOverflow — but eventually, I was able to come up with something that actually worked, and I finally ported it to PyPI.

Here's a link to the Github Repository. It now has over 1.9K downloads!

It was so fulfilling to me seeing other people using something I crafted.

That good feeling led me to believe I might able to do more in the open source community, on top of the Mpesa package.

For a long time, I've admired open-source contributors, inspired by the fact that so much software used today in some way relies upon open source — where people dedicate their time, skills, and effort to build something that we can all use for free.

That single contribution to the Mpesa package helped overcome the imposter syndrome of feeling unskilled enough and contribute anyway, which gave me the momentum I needed to keep moving.

Gaining Traction in the Open Source Community with Pyswahili

The same month I started pypesa I opened a new repository titled pyswahili while procrastinating preparing a talk for Pycon Tanzania, envisioning to be the Swahili version of python programming language.

Honestly, I didn't intend to begin working on this project anytime soon but it changed when I saw the repository with a 0 line code gaining stars, people betting on it... I said to myself: I need to make this real.

Well, after a couple of weeks I managed to come with an early implementation of pyswahili, with a couple of bugs like replacing non-keyword strings, lack of an interactive REPL, unstructured packaging.

I then shared the early implementation with my fellow devs. They were really excited, which in turn lead the repository itself gaining a few additional contributors, and a few more stars!

Recently, I managed to port to PyPI and up to date it has been downloaded by over 0.8K! Here's a link to Github Repository.

Mtaa

The third package arose when I came across a Github repository consisting of data about all locations data in Tanzania grouped by region as CSV Files.

I thought how about organizing those data as a python package would aid easy accessibility and usage when it comes to building a real-life application with it, which lead lead me to create Mtaa, a python package just do that!

Here's a link to that Github Repository.

Pysimilar

Pysimilar came up after a previously published article on how to detect plagiarism in Python using cosine similarity, which stands as one of the most-read articles.

After realizing many people were looking into building something like that, I thought of building a light python package that will enable even complete beginners to build a plagiarism detector in python.

Here's a link to that Github Repository.

More python packages

"If you can't find it, develop and open source it,"

says open source, so I did! I began developing packages focused mostly on simplifying the integration with the APIS. These packages include:

1. NextSMS a python Package to ease the integration with nextsms SMS Gateway

2. Tigopesa Python package to ease the Tigo Pesa Payment API integration

3. BeemAfrica A python library to ease the integration with the Beem Africa (SMS, AIRTIME, OTP, 2WAY-SMS, BPAY, USSD)

4. Nida un-official Python library for loading user information based on National ID number (Tanzania)

What I have learned? And why you should contribute too?

1. Open Source as Hands-On Learning

Personally getting to open-source has completely transformed me in terms of perception and improvement in the way I write code than code examples ever taught me. Therefore I would also recommend If you're currently learning a programming language or looking to advance your skills, one of the best things you can do to achieve that is contributing to open source.

2. Your contribution to open-source projects can act as your portfolio.

Your open source projects arevivid evidence on how you write code, and help document your projects, which can help you land paying gigs. I recently worked with a client who reached out only after going through my GitHub, so it works for sure!

3. You don't need to be an expert to contribute, you just need to have something to contribute.

And sometimes you don't even have that something: there are couples of websites such as CodeTriage that highlight issues you fix and level of the difficulties for tons of open source projects, depending on your language competence.

Well, that's all for this article, I'm glad you enjoyed learning exploring my journey as an open-source contributor, to me this is just beginning and I really think you should too.

You can connect with me on Twitter, and I also write articles on my personal blog!