Prologue: Getting Selected

Nanubala Gnana Sai
4 min readJun 9, 2021

Witnessing the result of your hard work is a surreal feeling indeed. Months of hard work manifests itself in the form of a single word, “Congratulations”. Similar was the case when I was selected for Google Summer of Code (GSoC) 2021. Ever since, I’ve been requested time and again for a “comprehensive” guide to clearing it. Quite honestly, I don’t think there’s any silver bullet to this. Regardless, I wish to share my journey in the hopes that the reader could find inspiration to aid his/her quest. I’ll conclude this article by mentioning the quintessential quality of a GSoC’er.

One of the mentors from my previous org

My introduction to open source is owed to “Hacktober Fest” of 2019, and my first ever pull request was on how to get a burger which was never merged. Then I made a pull request trying to change the LICENSE.txt file of a repository(for the love of god, don’t do this), which was rejected the very next second. Off to a good start!

I attempted GSoC on the year 2020, I was briefed about it by my seniors. Machine learning and Space technology has always been my area of interest so I started looking of repositories in this field. I found poliastro, its a repository which largely deals with orbital mechanics. The maintainers were really kind and helpful. With their help, I was able to have my first PR merged. Getting your first PR merged is an ecstatic feeling! (even more so than cracking GSoC, I dare say). It elevating to know that your code is worthy of being hosted by a credible library.

It was late February, I got acquainted to shogun.ml, a C++ based machine learning library. I don’t recall why I chose to go with it, given I barely knew anything about the language. Setting up the dev-environment itself took a considerable amount of time. The developers were really patient in helping me in each and every step of the way. Over the days, I developed proficiency in the language and the intensity of my contribution increased. The proposal I was planning for dealt with introducing “Random Fourier Features” algorithm to the library by Rahimi et. al., yet my contributions had nearly nothing to do the my proposal. This would prove to be one of the defining mistakes of my application.

On the day of the result, I was rejected by both of these organizations and it went down quite hard on me. Soon after, the maintainers from the organizations reached out and expressed their appreciation towards my contributions and encouraged me to stay in touch. That made me realize that open source is much more than just GSoC. I decided to continue contributing in shogun.ml and we completed majority of the works of my proposal. My skills shot up drastically in Modern C++, Git/Github, Test Driven Development and collaborating with others. This experience also helped me land my first internship.

A time gap after, it was my third year and I was fully determined to crack GSoC this year. On the day of organization announcement, shogun.ml wasn’t selected. So I chose to contribute on mlpack, a very similar library, I was late to the party (early March) but it didn’t matter. I started contributing extensively in the ensmallen library (only because it compiles much faster than mlpack ;-D) and had 3 very huge PR merged in the span of a month. I became one of the top contributors within a very short period of time, this of course, didn’t went unnoticed.

It was May 13th, 11:15PM, I got a mail from Google Summer of Code and I knew then, that all this journey has finally led to fruition. I contacted with the maintainers of my previous organization and broke the news, they heartily congratulated me on my success.

There are plenty of DOs and DONTs available all over the internet. I’ll rather focus on the unsaid rules.

  • Contribute as early as possible: Can’t stress this enough, some of my peer mentee’s started contributing to mlpack from previous year GSoC itself.
  • Try to make PRs as close to your proposed project as possible. The developers should know that you’re capable of handling of completing your project. No better way than contributing on similar areas.
  • Research before, ask later: Please use google almost excessively before asking for help to the developers. 9/10 times, what you’re looking for is either in Google or in the docs. Being able to work independently is THE quality the mentors are looking for, even during GSoC nobody’s going to hold your hand and help you out with things.
  • What’s the ideal proposal? : Ask previous alumni’s of that org their proposals, see what are the details they’ve included. That will help you work on exactly those desired details which are desired.

What’s next?

The coding period has officially started since 7th of this month. If you like, you can check out this repository to know more about my project. Stay tuned, there’s more coming!

--

--