by Aswin G
What I experienced at Google Summer of Code
This article is a quick summary of my experience participating in and completing Google Summer of Code 2018 (also referred to as GSoC).
What is GSoC?
Google Summer of Code is a program organized by Google to bring student developers into open source development. As the name suggests, it takes place every summer, during the months of April to August. During those months, selected students spend their summer coding for one of the several open source organizations taking part in the event.
Students can browse the list of organizations taking part in the event, with most of them having an ideas page that indicates which part of their existing projects could use some more work. Students can then submit up to three proposals to these organizations. The proposal should describe exactly what you have planned to work on over the summer, and why you should be the person to work on that.
Then, after a month long wait, the selected students are announced — and after a brief “community bonding” period, they can begin coding. Apart from the certificate of being a GSoC scholar, Google further incentivizes participation by providing a stipend to the student — varying from $6600 to $2400, depending on your location — it’s $2400 here in India.
What are open source organizations? How are they important?
Open source organizations have the code for their product(s) on a collaboration platform, such as GitHub. The idea here is that a core team directly working for the organization will maintain the code repository (and often contribute the largest chunks of code) — while anyone else can contribute to the code, open issues with the existing product, or use the product themselves (for free, usually).
Open source organizations are the backbone of the FOSS culture, which promotes free and open source software, encourages sharing and collaboration, and tries to make software available to a wider audience by removing monetary restrictions. Some of the best products and tools out there are open source, particularly in the software development world with just about everything from popular IDEs to the programming languages themselves being open source.
Initially, since I was a freshman, I had planned to apply for GSoC at the end of my sophomore year in college — and spend the time in between sharpening my skills so as to be good enough to get selected.
Out of curiosity, I decided to browse through the GSoC organizations list a week before the proposal submission deadline to see what kind of projects was available. Interestingly enough, I found quite a few projects that I felt was not too complicated for me.
After a brief “Oh, I could try for this right now” moment, I hastily drafted three proposals for three different organizations and submitted them before the deadline. The proposal I had submitted for Zulip, an open source productivity chat application, based around improving the UI/UX of their React Native mobile app ultimately got accepted.
Most organizations select students who have previously contributed to their code base, since they would have an assurance on the quality of code these students could produce — rather than selecting solely on the basis of their proposals. The Zulip proposal guidelines explicitly asked the students to submit links pointing to their previous contributions to Zulip and other open source organizations, which was a blank for me. As a result I wasn’t particularly hopeful that I would get selected, but I decided to try all the same.
Communication with the members of the organization is crucial for GSoC. Sometimes you’ll have to go hunting for IRC channels or mail lists to establish communication. Zulip is a chat application and had a dedicated chat server for developers. I hopped on it after the proposal submission deadline and made sure to get involved in the conversation there. I solved a few minor issues, submitted a number of Pull Requests to the Zulip mobile repository on GitHub, updated them as per code review and got them merged.
Of course, there were several other students doing this too, but when the selected students were finally announced, my name was on the list. This was the single biggest achievement I had obtained so far, and I was incredibly happy.
The Coding Period
I had a wonderful time coding with the fantastic and helpful community at Zulip. My mentors were two former GSoC students — and along with the admins who carefully reviewed my code — they patiently explained the mistakes I had made, if any, and helped me shape my code to hit the standard required for it to be merged in.
Another pleasant perk of being part of Zulip was attending the week-long meetup of Zulip members. Getting to personally know the team of coders from all over the world was amazing, and was truly an experience that made me feel part of the community.
In short, I can definitely say my coding skills have improved over the three months of GSoC. My git-fu (GitHub skills) — which were restricted to the basic cycle of
add-commit-push — significantly improved first. I was required to rebase, reorder and split commits to get them in an order that made more sense.
The single biggest difference between contributing to an organization and a personal project is that the organization’s product is used by thousands of people around the world. The existing code base was created by someone else, and the code I contribute should be understandable to another person who might work on it in the future.
Writing clear documentation, structuring your code to meet standards, and making sure your changes does not break anything else was a truly educational experience — for a person who was used to tearing down and hastily refactoring large chunks of code to make room for new features and write little to no documentation for my hobby projects ‘till then.
Google Summer of Code is a great opportunity for students to work on a project that truly matters, and exponentially increase their ability as a coder and the ability to work in a large team. Of course, coming off $2400 richer is great as well :)
Going forward I will continue to contribute to Zulip, and remain a part of that community. I would strongly recommend to anyone who has a passion in coding and FOSS to apply to GSoC’19 when it is announced, as it is quite the experience to remember.