Guide for Google Summer of Code

Vinayak Sharma
9 min readJan 4, 2023

--

Hey everyone!

Google Summer of Code is one of the most reputed open source program. If you are into software development or in general computer science, chances are that you might have heard about it or even thought about being a part of it.

I have been part of Google Summer of Code in 3 different ways. The first one was in the year 2020 when I tried for GSoC but failed, the Second one was in the year 2021 when I got selected to work with Python Software Foundation (EOS), and the last one was in the year 2022 when I was invited back to GSoC as a mentor for Python Software Foundation. In this blog I will answer all the questions that I get asked frequently by the other aspirants of GSoC as well as provide you all with the other relevant knowledge I have gathered in the last 3 years.

Spoiler alert: the two most asked questions are “when do i know i am prepared for GSoC” and “how to select an organization”.

What is GSoC?

The first and foremost thing to know before getting started with GSoC is to know about what this program is and what does it represent. GSoC is not exactly a way to earn rather it’s a way to explore the open-source side of software development. GSoC is an initiative of Google to connect students with open-source organizations. It is one of the best way to experience open-source and possibly discover a new career path.

When do I know I am prepared for GSoC?

This is one of the most asked question. To be honest their is no right way to gauge if you are ready or not, it highly depends on the project you pick for GSoC and the technologies required for completing that project. In my experience the few things / technologies you need to know about while preparing for GSoC are:

  1. Git / GitHub
  2. Good Communication skills
  3. A lot of enthusiasm to learn new technologies

The main thing to understand here is that you can never really know if you are ready or not until and unless you give it a try. Let’s say you found a project based on web development and you know 40–50 percent of the tech stack the project is using, you can spend the collaboration time (January — March) for learning the remaining 50%. It’s really hard to find a project which is utilizing technologies that you already know about. Most of the organizations are really supportive and they will help you in learning the missing skills. In fact it showcases your willingness to learn new things.

Lastly, don’t forget to check the eligibility criteria for GSoC. If you are new to software development, I would suggest you to get started with Git and then try out the various different development fields. This will help you in understanding the domain in which you want to work in future. For example you are into web development, you can get started by learning HTML, CSS, and JavaScript and then move on towards more complex technologies (React, GraphQL, etc).

How to select an Organization?

Every year nearly 200 plus organizations participate in Google Summer of Code. I would say this is one of the most difficult step in your GSoC journey. Selecting the perfect organization can take from a week to a month. One of the best way to approach this process is by making an excel sheet. Create 3 columns / categories:

  1. Difficult : put all the organizations that are working on projects that are either beyond your skill level or if they don’t match your area of interest.
  2. Medium : Put all the organizations that do have projects which slightly match up with your skill level or your interests but you are not sure if you will be able to gain the required skills in the remaining time.
  3. Easy : Put all the organizations that have projects perfectly matching with your skills and align with your interests. These are the organizations you will be targeting for GSoC.
ScreenShot of Excel sheet

I recommend going through the entire organization list of GSoC at least once. This will give you a sense of control and you will be assured that you are not missing out on a project that might have been the best match for you. I also recommend you to check out the past program section of GSoC and see if the organization you have selected has appeared in GSoC at least 2 or 3 times. The worst thing that happens is that a lot of times student contribute to an organization and that organization ends up not being selected for GSoC that year. So, if possible try to make sure that the organization is applying for GSoC this year.

Now, what’s the right way to know more about an organization?

Firstly, go to the past program page and select the most recent year. Now when you are on the past program page you have the option to filter out the organizations based on their area of work, you can use these filters to narrow down the selection process but I would highly recommend you to at least check out all the orgs one time.

Screenshot of past program list

As an example I will try to demonstrate the process for knowing more about an organization. Click on the organization’s name and open it’s detailed page. The detailed page contains information such as technologies, topics, past projects, idea list, link to join communication channel, etc.

The first thing to check is the technologies being used by that organization and if those technologies match with your skill set. The next thing to check is the topics section, which tells about the area in which the org is working. If these two things checkout with your interest proceed to check the past projects and idea list of that organization.

Screenshot of organization page

The idea list contains an extensive detail about the projects that the organization is currently working on and it is the most relevant thing that will help you in deciding if the org is suitable for you or not.

Screenshot of an idea list

Ultimately if you find that the organization aligns very well with your skill set and interests you can join their communication channel via the organization page on GSoC website. This process will help you in shortlisting the organizations for GSoC.

Connecting with the Organization

The next step to do after you select the organization you want to work with during GSoC is to join their communication channel (slack, Discord, mailing list, etc). The communication channel provides you with the latest updates about what’s going on in the organization and interact with the other collaborators and mentors. Most of the organizations have a code of conduct or a guide about “how to collaborate”, make sure you have read them properly before asking a question to the mentors. Before you ask any question to a mentor, try to figure it out yourself. If the org does not have any “getting started” directions, try to dive deep into the code yourself or google it out. If you are still not able to find an answer you should ask the mentor but also state all the methods and work you did in order to find an answer, this will display that you did put in efforts for figuring out the problem.

Making early contributions

The best way to make yourself more familiar with the organization and its projects is to actually work on the projects. Get started by locally running the projects. If you face any difficulty while setting up the project or you come across a possible issue, you should discuss about it in the communication channel of the organization (this will allow you to make an good impression). The next thing to do is to find issues with “beginner” or “good first” or “newcomer” label. The proper way to solve an issue is by getting that issue assigned to yourself (never directly start working on an issue before getting it assigned). You can also create a new issue if you find a bug in the application. Submit a Pull Request suggesting your code that solves the particular problem and ask the admins to review it. In this way, you can start making others perceive your presence.

labels for good first issue

Working on your Proposal

The proposal should be ambitious, while also being achievable. It wouldn’t do if you just did something trivial, while overcommitting will lead to failure later on. The different parts of an GSoC proposal are:

  1. introduction
  2. Synopsis
  3. Detailed Project plan
  4. Contributions (till date)
  5. Timeline
  6. About yourself

Some organizations might have a layout for writing proposal, you should strictly follow that layout. If an organization does not have any layout you can follow the above mentioned layout.

Check out my GSoC proposal here.

You can use this as a reference while writing your own proposal. You can also leave a comment below or contact me(or any other former alumni) if you need any help or if you want to get your proposal reviewed.

After submitting your proposal you should either keep on contributing to the project if the mentors allow it or just patiently wait for the results!

Additional tips from a Mentor

  • The proposal does matter: There is a misconception that those students who have contributed a lot and have a good understanding with their mentors, don’t have to worry about proposals anymore, they are already selected.
    This is completely wrong; you still have to prepare a very good proposal. The proposal is like 50% of the GSoC. It can be a game-changer if worked on properly. I suggest you spend at least a week on your proposal.
  • Use a proper timeline: I have reviewed a lot of proposals and one thing I find very common is that the timeline is vague and short.
    Timeline is a very important part of your GSoC workflow. If you are selected you are expected do deliver results based on the timeline you wrote in the proposal, so try to be real and write exactly what you’ll be doing. Spend at least 60% of your proposal time on writing the timeline.
    Take reference of the proposal, I have shared above.
  • Consistency is the key: Doesn’t matter if you are well experienced or not, if you are not active in the community, your chances of selected are highly reduced. So, try to be active and chat at least once every day with the mentors.
  • Don’t be afraid to ask for help: Yes, you shouldn’t ask dumb questions(that you can google) in the main community channel, but it is important to understand what project is all about and don’t be afraid to ask for help if you are stuck with something. After all open source is all about collaboration.

What if you are not selected for GSoC?

Luck also plays a role in everything we do. Don’t worry if you aren’t selected this time. I wasn’t selected for the first time as well. But I learned a lot and I used that to participate the next time. You have nothing to lose here. If you get selected — well and good, if not — don’t worry, you learned a lot and also you can try next time.

Even if this is your last time. Don’t worry I have a whole list of Open source events just like Google Summer of Code.
Click Here.

Thanks a lot for reading this blog and all the best for your GSoC journey!

--

--