Experience
My first time contributing to open source software

My first time contributing to open source software

When I was considering creating a personal website, I figured that my Github account was pretty empty. Which you may find strange for a software developer with 5+ years of experience. Truth to be told I thought the same at first, but most of my code is in private repositories that I can’t disclose, and I have never contributed to open source software. I was curious about it, but never got involved in it.

I recently started a new personal project using Flutter, and the open source software piqued my curiosity once again, making me want to learn more about it and start to contribute, but I just didn’t know where to start.

I’m sure many have face the same issue, so I decided to share my experience contributing to open source software, some of my thoughts on the matter and giving advice when possible.

Where to start

My experience learning Flutter is what pushed me here, so obviously the first thing I thought was to contribute to Flutter. But if you ever have taken a look to this big frameworks, even if you have a very good understanding of the framework, the amount of code, information and changes occurring at a very fast pace is certainly overwhelming.

I am not saying you can’t contribute to one of this frameworks as your first contribution. But I think that the time invested into learn about the contribution rules and how the code works before you can make meaningful contributions is a bit too much.

What I did instead was to look around repositories for a while before I get an idea. While I was working on my project with Flutter I used a couple of widgets made by the community so I checked them out. There I saw they were very simple and that probably I could extend their functionality.

Choosing my first contribution

First I decided to take a look at the github repository for the Spinbox widget. I went directly into the issues tab, there was one open that looked pretty simple. I was close to what I was looking for.

I looked in to the conversation to check if there is anyone who was already working on the solution. But the last one who mentioned that wanted to work on it was from 6 months ago, so I just jump into it.

I forked the repository and started to work in the solution. The change was pretty straightforward to resolve, so it only took me a couple of hours from when I forked it until I was ready to submit a pull request.

Opening my first pull request

Here is where it gets interesting. As I said before it was a simple change. I submitted the pull request and a few hours later the owner of the repository left a comment.



He made a different proposal, much more sophisticated than my far more simpler solution. The solely act of reading through the code helped me a lot. From expanding my knowledge on Inherited widgets to learn a bit more about the material foundation.

In the end my code was not merged in, and that’s ok. I didn’t expect to land my first pull request since I am still new to this.

If you want to see the details you can see the pull request conversation. I will breakdown the final solution (not my solution) in a future blog post because I think it was very interesting.

My advice

This was my first contribution and the experience as a whole was very educative. If you want to start contributing to the open source community this is the advice I can give for now:

  • Choose something familiar, if you like working with a framework, choose something related to that framework. You will be more comfortable and you will not be starting from ground zero.
  • Go for small projects, specially if you have personal projects or a job that doesn’t let you much time to spend. Small projects are easier to understand and to get into.
  • Pick an active project, be sure there is activity in the repository at least in the last 3 months. You don’t want to put on your best effort in vain.
  • Don’t be afraid to ask for help, if I had been more communicative I would have been able to take a better approach for my solution. And the answer I got showed that he was willing to help me if I had ask.
  • And the most important thing. If you wan to do it, just do it.

1 thought on “My first time contributing to open source software

Leave a Reply

Your email address will not be published. Required fields are marked *