Contributing to Open Source and GSoC for beginners

Krishna
4 min readApr 17, 2018

--

It’s been almost a year since I participated in Google Summer of Code. This would not have been possible without the help and guidance from awesome people like
Archit (Python Expert. RedHat)
Atul (Open Source Expert. Entrepreneur)
Abhijit (Data Science Expert. Julia Computing)
Nakul Jindal (My GSoC Mentor. IBM Resarch)

I have been wanting to write down my experience from a very long time. So here it goes…

Meetups

Meetups are the best!. The only reason I used to go was for food / freebies. Besides you also get to learn something new. Usually you meet many people. They could be your future co-founder, you might get a gig and you might even be inspired to contribute to open source. (Bonus: You might find a mentor who can guide you).

Programming Language

I have made many mistakes in my career and some of them were that I never stuck long enough to learn a programming language well. I have dabbled with Java, Scala, Python, Matlab and R. I had to really stop and make a conscious decision to code only in Python.

Doing this will enable you to focus your energy on one thing and get better at it. Eventually what ever you learn in one language can be easy transferred to the other. So Just stick to one language.

I chose Python as its is the de-facto language for data science and machine learning (I might be a bit biased here!). Since my Masters was in Data Mining, It was a no brainer to choose Python. As a Data Engineer at IBM, I used to script a lot. Python seemed like a tool that could bridge my scripting expertise and machine learning.

Open Source

Once you have figured out a programming to stick to, start lurking around in the mailing list of projects you might be interested in.You should also introduce yourself in the mailing list.

Dos:
Read source code / JIRAS / (Pull Requests) PR
Begin by working on easy issues like bugs and improving documentation (This is how I got started with open source)
Learn Git

Avoid:
Mailing a committer individually
Working on too many tasks at once
Contributing to too many open source projects (Unfortunately I have made this mistake!)

When you get your first LGTM, you will be on cloud 9.

Choose your open source organization for GSOC carefully.
For example some projects like scikit-learn gets a lot of student application (and chances are that a PhD. student might beat you to it!).
Its would also a good idea to apply to any projects under the ASF or R-Project since usually these organizations get a lot of slots for GSoC.

Writing the Proposal

Make sure to write a very detailed document on what you want to do. I have added my proposal in the footnotes (I am sure you can find several GSoC proposals online).

This is the time you could ask your mentor for a feedback and refine your proposal. Make sure you do a very good job of it. I remembering being up till 0100 hrs working on the proposal. Add relevant code, flowchart and account for stuff like when there are bugs in your code.

If every thing goes well you will get something like below:

This moment for me was incredible.

My GSoC Journey

I realized that my battle had just begin. I needed to pass 3 phases, one after every month. All I needed to do was work harder. I stopped going out on weekends, slept late and was super proactive. I always asked my mentor how I was doing. This gave me a feedback check and I worked accordingly.

I also realized that everything I had accounted for in my proposal was experienced by me. Every problem I thought might occur, occurred.

I learnt a lot.

I had a chance to present my work to core committers at IBM. This was really gratifying.

My mentor was awesome!. He was always ready to help (even on weekends!). I would highly recommend every student to participate in GSoC.

Foot Notes:
[1] GSOC Proposal
[2] Work Product
[3] My First Pull Request

You can reach out to me on twitter @krishnkalyan3.

Bonus:

Me literally with a GSoC socks

--

--