Guide to Open Source and GSoC

Rishabh Agarwal
8 min readMay 24, 2020

--

This is Rishabh Agarwal, an active open source contributor. I made it through Google Summer of Code with OpenMRS organization with the project Android Client 2.9x.

Getting bombarded with a lot of messages and requests on the same topic, I decided to write a blog containing all the ifs, buts, whys, and hows on OpenSource contributions and Google Summer of Code. So if you are wondering about getting into Google Summer of Code or trying your hands on Open Source, hang on tight, as it will be pretty long due to details(around 8–9 minutes read) and I can assure you that this is going to helpful.

What I will be discussing

  1. My Journey in Open Source and how I cracked into GSoC
  2. How to start with Open Source
  3. How to get into Google Summer Of Code
  4. Some Frequently asked questions
  5. What if you didn’t get through GSoC
  6. List of other OpenSource Competitions

My Journey in OpenSource

All this started with my urge to get into the coding club of our college CyberLabs who held a month-long competition where we were expected to create a project in a team with a head mentor. In those one month, I had the experience of working with Github in a team under a mentorship. At that point, I was convinced that this is something that I definitely enjoyed and need to polish my skills.

I did a couple of interns in Android during summers and it helped me get well aware of many common libraries used in development as I had to work on those libraries thoroughly during those interns. Seniors from my club held a session where they told us about GSoC and how exciting it is to be a part of open-source organizations.

So it started with Fossasia in December where I fixed two of the bugs I found in-app and also helped the organization in migrating their codebase from Google Maps API to Mapbox API. This really gave me confidence that I can easily start with any open source project. I went through the GSoC archive to look for the organizations and there I found a line — “Write Code and Save Lives” and at that very moment, I knew I wanted to be a part of that organization.

I started contributing in early January and was quite enthusiastic about the project, as a result of which I managed to send 30+ PR’s by the end of the march. I was even handled the project and made the collaborator where I reviewed and merged a few PRs.

Then came the proposal period where I thoroughly listed the ideas I wanted to implement and prepared a proper weekly schedule and submitted the proposal. I interacted with the organization members publicly and asked for help on upcoming features instead of sitting idle after proposal submission. One month later, I received the email regarding my proposal selection and I was selected.

So, this was my 4-month story short. Now let’s get you all started with Open Source 🔥 🔥

How To start with OpenSource

Step 1:

Try to learn as much basic of your development field as you can before you start with the huge codebase with tonnes of advanced libraries being used. With your basic clear, you can very well understand the code structure without being bothered much. Since I am from the android background, the list of things you should be aware of are:

  • MVP or MVVM architecture patterns
  • Dagger and Jetpack components basics
  • Database and Retrofit
  • Unit testing and Material IO

A good way to learn all these things is to think of a project where you can implement all the features and then try to build one project. This way, you will be able to understand concepts and get prepared for the Open Source Journey ahead.

Step 2:

Search for open source projects on google and Github and clone it. You take your time and start reading its codebase and try to figure out the architecture pattern it follows. Try to read the code side by side whilst running the project, it will fasten your progress. Do make sure to take some standard project as Github is full of projects without proper conventions and you might end up with tonnes of lines of codes with nowhere to start.

Don’t give too much time reading the code as you will never be able to read it completely unless you start coding 💻. So try to find small bugs and try fixing it, this was you will be able to get in feel with code and thus the project. 🐛

Step 3:

Reach the mentors and organization of your projects and try to build a healthy relationship with the organization by actively participating in threads regarding new features and try to take difficult tasks as mentors will guide you directly.

Do not ping them personally with doubts, rather post it on public channels so that you get a quick response. Always do thorough research before asking a doubt as everyone will be interested to solve them if it is worth it. You will definitely get a positive response for silly doubts but make their time worth investing.

How do I get into Google Summer of Code?

For every open-source developer, GSoC is one thing that he always aims for and you are here too because of this particular section of the blog 😆 😆. So let’s start with this.

Getting through Gsoc is not a way one-step process. So here are tips from my side:

Start Early:

You need to get started as early as possible for which you can go through the GSoC Archive and shortlist the organizations and projects that interest you and start contributing to them as soon as they are announced by Google which happens in early February.

However, some students also start way early on in November/December as I did instead of waiting for new organizations to be announced, they shortlist few organizations which have been selected continuously for the past few years. You need to do a proper analysis of this. This year, FOSSASIA was not selected and it came as a surprise as this organization had always participated with a good number of slots so you can never be certain.

While this is risky, if done properly and carefully, it does give you an edge over others, since the number of contributions and interactions you’ve had with the organization factors in a lot while applying for GSoC under that organization.

You can apply for 3 organizations/projects so you can generally contribute to multiple projects but I submitted only one proposal.

Contribute:

This is the most important phase of GSoC. Once you’ve shortlisted the project you want to work on, you have to focus on contributing as much as possible to the organization you’ve selected.

This helps the mentor to select the candidate easily as he will know which candidate has the potential. You will also build up a healthy relationship with a mentor.

A contribution involves anything like

  • Fixing an issue
  • Implementing a new feature
  • Writing Documentations
  • Updating their user guides
  • Migrating tasks.

Preparing a proposal:

Your proposal is going to be the secret key towards ensuring your selection so ensure that you put extra efforts towards making it as detailed and informative as possible.

  • Outline the features you are planning to implement
  • Give a detailed timeline on how you will implement those features in steps
  • Try to make the proposal implementable as mentors do know when the proposal goes out of line, so don’t try to spice the things up too much
  • Mention your contributions to the organization

I will attach the proposal that I submitted to openMRS so you get the idea of how to design your 13-week timeline. Once you are done with the proposal submission, so not just sit idle, but keep contributing and communicating with the organization and make the best opportunity of this one month window

Some frequent questions I came across:

Q1: Can a non-CS guy do GSoC?

Yes, definitely. Your branch doesn’t matter as long as you are consistent and contributing excellently to your organization.

Q2: Do I need to understand the whole codebase?

No, just get to know the architecture and conventions. You can only understand codebase once you start fixing issues and once you are confident, go for creating new features and enhancements.

Q3: How should I interact with the mentors/organizations and how to impress them?

Introduce yourself on the public platform and try inputting your thoughts on features and try to ask questions regarding the project. Try to pitch new features from your side. The mentor will automatically notice you once you are active and contributing to the pro

Q4: Will they select a guy from tier-2 / 3 college?

No, your college has nothing to do with GSoC. The answer is the same as Q1.

Q5: I have zero experience right now, what should I do?

Honestly speaking, you will never have enough knowledge of any technology in your entire professional career. Even some of the most experienced developers out there don’t know everything. Learning is a lifelong process, you can never be truly ready for something. So just make up your mind and start as soon as you can, I’ve seen few seniors cracking through GSoC and they started in Late February only.

GSoC is not the end of everything 👍

Please, don’t treat GSoC as an IIT JEE entrance exam that you have to crack in order to be successful. I’ve seen people achieve wonderful things without even doing GSoC and vice versa, so preparing for and applying into GSoC just because every other person is doing so is ridiculous.

You need to understand the essence and the deeper meaning behind the program and only go for it if it’s something you truly resonate with and are willing to continue long after the program ends and you are not getting paid for it. You will get to learn so much from the huge community out there that even the so-called paid courses and workshops won’t ever teach you. I mean you are actually getting mentored free of cost from the experts and learning so much, what else do you want?

Other Competitions

As mentioned beforehand, Google Summer of Code is not the only open-source program out there. While it’s the most famous and respected one, but there are tons more that you can still participate and be a part of

  1. Season of Code, KDE
  2. Hacktoberfest by Digital Ocean
  3. CodeHeat by Fossasia
  4. BOSS by Coding Blocks
  5. Winter of Security by Mozilla
  6. Google Season of Docs

The end

Well, that’s it!

If you have any questions that were not covered in the blog post above, feel free to comment them down below and I’ll try my best to answer them.

--

--

Rishabh Agarwal

Android developer | Technical writer | Open Source Contributor