What is GSoC?
Google Summer of Code is an annual initiative carried out by Google for the betterment of the open-source software and the students in STEM fields. It started in 2005 as a program that would help students to spend their summer productively while earning a stipend that would allow them to sustain themselves through the summer. The program starts each year with Google requesting organizations to submit their open-source projects. The organizations that are selected through this phase are allocated a certain number of slots based on the org size and some other factors. Then these project ideas are made public and students all over the world can apply to work on these projects. Selected students will work on the projects for three months and will earn a stipend based on the location*.
* Up until 2016, Google paid the same amount of stipend to all the GSoC participants irrespective of the location. However, in 2017 they switched to a payment model based on Purchasing Power Parity (PPP).
How I heard about GSoC
I wasn’t aware of the Google Summer of Code program by the time I entered the university. On one fateful evening, I was cheering my classmates as they were participating in athletic events on the university grounds. One of my friends came running towards me and told me that seniors are going to hold a meeting for something software-related. The nerdy bunch who were cheering others went ecstatic with the mention of the word “software” and rushed back into the sweetness on the AC rooms in order to attend this meeting.
This was during my freshman year in 2016. And the meeting was taken by a few of our senior (4th year) students. They had a nice presentation with many slides and explained to us about GSoC. At this time the GSoC stipend was 5500 USD worldwide. This was around 800,000 LKR. It was a huge amount of money, especially to a university student. That was even greater than what most of the senior software engineers would make in Sri Lanka for 3 months at that period. It wouldn’t be wrong to say that we were mostly motivated by the stipend! And of course, contributing to open source…well, the MONEY!
I remember scrolling through the GSoC organization list a few times that day. Then I gave up after a few days. So did others who were there in that meeting. If I am being really honest, I didn’t have the required technical capacity to undertake many projects on that list. There might have been a few projects that I would’ve been able to complete successfully if I got selected, but nor did I have the perseverance required to apply and get selected for the program. I will talk about this quality again in the latter part of this article. Somehow I didn’t apply for GSoC 2016 as a freshman.
What happened in the Sophomore year?
At the University of Colombo School of Computing (UCSC), the sophomore year is the perfect year to apply for the GSoC program as it encompasses a semester that has relatively less amount of coursework. But during these days I was heavily involved with volunteering activities such as mentoring school kids in rural areas or organizing hackathons. I also participated in something like a gajillion of hackathons & meetups with my team and decided that I didn’t have enough time to apply for GSoC.
The third time’s a charm
My sophomore year ended with the realization that I wouldn’t be able to participate in GSoC twice* if I didn’t apply for GSoC in my 3rd year. I was dead set on getting selected for GSoC at the end of 2017. The speciality with GSoC is that you have to be more than a good coder to get accepted into the program. You have to keep contributing to open source projects. And it is for that “open-source reputation” that you’ll most likely be selected into an organization. Therefore it is advantageous to start contributing as early as possible.
* Initially Google restricted the number of times that a single student can participate up to 3 times and later reduced that to 2.
Google allows you to submit multiple proposals to multiple projects. And I decided to go with two proposals in order to maximize my chances of getting selected for either of the organizations. What was left was to select two projects from two organizations.
This is probably a good time to tell you about my obsession with CERN and the work they do. I was in love with Physics for as long as I can remember. And the experiments related to particle physics at CERN always made me fascinated, despite my limited knowledge about many underlying principles at work there. I ended up ogling the CERN-HSF project list for days and finally chose a relatively easier project as I did not want to hinder my studies.
“CERNBox is a cloud storage synchronisation service for CERN users: it allows syncing and sharing files on all major mobile and desktop platforms (Linux, Windows, MacOSX, Android, iOS) aiming to provide offline availability to any data stored in the CERN EOS infrastructure. CERNBox is based on ownCloud, a cloud sync and share platform written in PHP following a Model-View-Controller architecture software pattern.”
The task basically consisted of writing a new frontend for the ownCloud service so that it could be used with the CERNBox service. The task was titled “Petabyte Scale Cloud Storage File Manager”. You can find my proposal for this project through this link.
Apart from my favorite pick, I ended up writing a proposal for the DroneSym project of the SCoRe Lab organization as well. I was familiar with the work of SCoRe Lab as I was trying out and reading the source code of DroneSym for a few months by that time. I didn’t spend much time trying to craft a perfect proposal as this was my second choice. You can access the proposal here.
Well... I got selected to CERN-HSF 😁
Milestones, here I come!!
For the most part, what happened afterwards was pretty straightforward. It was somewhat difficult to catch up with the expected standards of my mentors initially. But after a while, I began gaining momentum. It was an arduous task to manage academic coursework alongside GSoC. But this is expected when you enroll for GSoC from a country where summer vacations are not a ‘thing’.
Like I said, for the most part!! I was in the middle of the 2nd milestone when a trade union action took place in Sri Lanka. This forced the UCSC to shut down its academic activities for several weeks as the non-academic staff was on strike. Let me explain this further in case if you are not a Sri Lankan national and have no experience regarding this matter. It is natural for the state universities to shut down academic activities periodically due to various turbulent issues in the country. Don’t get me wrong. As an average university student, I was extremely happy about the extra holidays. But the issue was that the shut down pushed the end semester exams right in the middle of the third milestone. I can safely tell you that it was the most difficult period that I went through in terms of work pressure, after coming to the university. It was INSANE! There were many days that I woke up around 1–2 AM in the morning, work on my GSoC project for a few hours, commit the code, and went to write the exam at 9 AM. I was tired. Scared about my grades. And scared about failing GSoC.
It is said that the difficult roads lead to beautiful destinations, and the destination was quite beautiful indeed. I let down a big sigh of relief when I finally received the email that I had successfully completed GSoC. However, I do not recommend anyone a road that difficult if you care about your academic grades at all! You should really assess your time schedule well, before applying to GSoC. Specifically, if you are in a country without a “summer vacation”.
Then it was time for congratulations! 😁
Invitation for the ownCloud Conference
My GSoC project was jointly mentored by CERN, ownCloud and AARNet. At the end of my project, I got an invitation to participate in the ownCloud Conference at Nuremberg, Germany and give a lightning talk about what I did. The trip was a life-changing experience as it was the first time that I traveled to a foreign country alone to participate in a conference. It was hectic when I tried to obtain my German visa. But I guess that is a story for another day.
That marks the conclusion of my GSoC journey with CERN, ownCloud and AARNet. When I look back, I am really glad everything turned out the way they did. I believe the GSoC allowed me to obtain a multitude of skills during those three months. Let me end this by acknowledging my mentors, Hugo (CERN) and Thomas (ownCloud) for your help throughout this difficult journey. You guys are awesome!