* * *

What is Google Summer of Code?

Well, that is not what this post is about. But if you just crash landed on this blog post and have no idea what GSoC is, I’d suggest you to read this: https://summerofcode.withgoogle.com/about/  or watch this: https://www.youtube.com/watch?v=S6IP_6HG2QE

This post is the first in a series of 3 blog posts. The next post will be uploaded on September 8.

Happy Reading!


git init : Autumn

According to me, the right time to get started with GSoC preparations is mid September. The benefit of starting early is that you can hang around open source organizations, learn how to use git, stalk old GSoC conversations, and overall, get an idea of what open source communities are like.

The first step is to learn how to use any version control system, preferably git. There are a lot of online resources available which teach the same, but you learn only if you try it yourself. Start playing around with your own github repositories until you are comfortable with the workflow. Once you are comfortable with git commands, you can pick any open source organization or repository (make sure to read their contribution guidelines) and find a suitable issue on the issues page of the repository. Most beginner friendly issues have tags ‘good first issue’, ‘low hanging fruit’, ‘beginner friendly’ etc. If you are a complete beginner and don’t know where to contribute, take a look at https://github.com/source-aasf.

Autumn Challenge : Get a pull request merged in an open source organization.

Helper : https://github.com/source-aasf/Contributing#detailed-workflow

The next step is to know which tech you prefer, have real passion for, and would like to work on through the summer. For example if you love mathematics/mathematical modelling and know how to code in python, PyMC3 could be the right organization for you. So the important task is to know what you like, and then shortlist about 7-8 organizations from the organizations list of previous years based on this preference. It is possible that there are projects in some organizations which suit your preference too. For example CERN has some deep learning projects even though it is a scientific organization. Make sure your shortlisted organizations include these too.

What you have to keep in mind is that just like students, even organizations apply for being a participant in GSoC. If your chosen organization gets rejected, it could be a sudden setback since the result of organization selection is announced in February only. So analyze how frequent your chosen organization has been selected in the past years, how many students they select normally, is there much scope of development in their projects or are they almost mature etc. For example umbrella organizations like NumFOCUS which act as an umbrella for several other organizations, are not normally accepted. Another example is of OpenCV. It has mostly mature projects, and was not selected last year. [These are just my personal observations and do not represent any official statement given by Google regarding the acceptance or rejection of any organization].

git cherry-pick --organization : Pre-winter

Start contributing to the shortlisted organizations one by one, starting with the organization you are most interested in. Even small PR-s would do. Try to write good, structured and well documented code even if the patch is really small. These organizations would have continuous integration tests when you make pull requests. So practise solving errors which turn up in these tests (it is basically just error logs, but could look scary). Make sure you follow the contribution guidelines of whichever organization you are contributing to.

You need to be active in the community through IRC, mailing list etc. It is possible that you face rude comments or disappointing feedbacks there, but that is just a part of the journey. [This is just advice I got from other places, my personal experience with the community has been awesome]. It is always suggested to keep all discussions with regard to GSoC public. So avoid sending personal emails to maintainers asking doubts. If you don’t feel comfortable with the organization or if the maintainers aren’t active enough or anything of that sort, start contributing to the next most preferable organization. Do this till you find the perfect fit(s). [You can be active in multiple organizations if you would like to submit proposals in all of them, but I wouldn’t recommend it].

Pre-winter Challenge : Finalize your organization (You can have a backup organization too, if you aren’t confident enough)

Helper : https://summerofcode.withgoogle.com/organizations/

Suggested deadline : December 1

Once the organization has been finalized, it is crucial not to change your decision later during February-March. This could keep your chances of being selected at stake. So be extremely careful when deciding.


Coming up next

  • How to be a known name in your organization?
  • Deciding which project to work on.

This post is the first in a series of 3 blog posts. The next post will be uploaded on September 8.


About me

I am Haritha Sreedharan Nair, currently pursuing M.Tech in Information Technology at ABV-IIITM, Gwalior. I am a Google Summer of Code 2018 participant with ‘mlpack’. If you are interested to know more about my project, visit: https://summerofcode.withgoogle.com/projects/#6670677558427648                                          Github profile: https://github.com/haritha1313/