Google Summer of Code | My story
Google Summer of Code has been bringing more and more students into open source development for a while now and I consider myself very lucky to be a part of the 2018 class of GSoC students. This blog post is my story about how I got selected for GSoC.
My Background
Let me give you a brief insight into my background first. I come from a very small town and had very little exposure to Computer Science as such. I never knew that “programming” can be such an elegant thing. I always considered that programming is, maybe, something very difficult and not everyone’s cup of tea.
I was rather fascinated by it. So, when I came to a bigger city for my senior secondary education, I got myself enrolled for a Computer Science course in the school and this was the beginning of my journey. We were learning C++ then. I was initially quite overwhelmed when I found out that my peers had done quite a bit of programming and I was a complete zero! Since I found the thing really interesting, I was always practising and learning new things and by the time I finished my senior secondary education, I had learnt quite a bit of C++ and Python as well (my first project being a GUI Scientific Calculator) and then some web development with HTML/CSS and JavaScript.
Introduction to Open Source
As I got enrolled to college, I had started solving coding challenges on HackerRank. I kept learning new things in college but I did not know that something called Open Source existed. I came to know through seniors that people keep the code for the projects they build on GitHub (It was introduced to me as Facebook for developers!). So I open-sourced the code for the very first project I built, the same scientific calculator. It may not seem a very big deal, but it was, to a boy who had learnt Python for only 4 days and then spent 3 days non-stop to build a seemingly flawless piece of GUI app (Yeah, take that!). In the freshman year of my college life, I developed many new skills and contributed to open-source projects built by the seniors of my college.
Comes GSoC
I came to know at the end of my freshman year, that Google pays students to write code for open-source organizations while sitting at home and the amount of stipend was more than enough to convince me that I needed to do this :chuckles:. But I spent most of my sophomore year without contributing to open-source projects outside the circumference of my college. Then comes December and here I am, without any substantial contribution to any major open-source organization. I was worried because I knew that many people had already spent at least 4–5 months contributing to some open-source organization which was previously selected for GSoC. One of my seniors told me that you could participate in Rails Girls Summer of Code (RGSoC) and he said that the name is misleading, even guys can participate, not all projects are on Ruby on Rails and the stipend is also higher. Since there were still 2 months before the list of organizations for GSoC 2018 was announced, I decided to give it a try and turns out that the name isn’t misleading at all and guys’ applications are not even considered for selection. Thus I had exhausted January and half of February. After the list of organizations for GSoC was announced on 12th February, I began going through the list and shortlisting those which enlisted projects either on Python or on JavaScript. I knew I could not participate with the so-called “bigger” organizations because the competition was more there. It took me almost a week to come across CROSS. I saw the projects and there I saw that one project called `Popper` that required porting the codebase from `Go` to `Python`.
The first patch
I started learning `Go` for two days and I checked the repository to gauge my competition. And Kaboom! What do I see? The mentor had already added the skeleton for the Python porting. And there was a list of issues (well described too) to start with! Made my work a great deal easier (and others’ too). CROSS, being a first time organization participating in GSoC, did not have much competition. I picked an issue I thought I could solve and got myself assigned to it. My mentor was very helpful and I solved my first issue within a day. This began at the start of March. And the joy you get when your first patch gets merged cannot be described in words (those who have recently got their first patch merged will know about that!).
The proposal
I kept on solving issues on the `Popper` repository and by the time I started writing the proposal, I had 7 patches merged. Using the template that CROSS provided and with some input from my mentor, I wrote the proposal in 4 or 5 days! I showed that to my seniors who gave me quite some praise and suggested a few modifications which I quickly incorporated. I showed the proposal to my mentor who suggested a few changes and said it was good to go!
The wait
I submitted the proposal a day before deadline and then came the waiting period — the long time after the submission of the proposal till the list of accepted students is announced. I continued contributing to Popper meanwhile. And then came the final day! I was waiting with the webpage open in the browser and when the list came out, I could not believe what I was seeing! I was selected for GSoC! First try! Only one proposal! And I got selected! I couldn’t be happier!
The work
We had our semester exams then. I studied for the exams, but I was more excited about GSoC. People from CROSS welcomed me into the organization. I kept in touch with Ivo meanwhile and researched everything I needed to know to start contributing to the code from the first day of the coding period itself. Almost half of the code that I had planned in the proposal was completed in the first 20 days but it was crude. Ivo, my mentor, asked for a level of abstraction so that the code looked cleaner and I concurred. And I can say I am proud of what I delivered finally :wink:. That consisted of my first month’s work.
In the second month, me and my mentor decided to deviate from my actual project mentioned in the proposal and focus on other areas of the Popper tool. As of now, I just passed the second evaluation and I continue to try my best to contribute and make a difference.
Most people are initially overwhelmed and resistant to get into open-source and that happened with me too. But once you overcome the initial hurdle, there is nothing as satisfying as writing code which people all over the world will use and can see to learn.