GSoC Preparation Guide
Most of you might be wondering what GSoC is all about and why every student has an inclination towards it? What is that you will achieve in return?
So let’s go through a brief introduction about GSoC.
What is GSoC?
It stands for Google Summer of Code, a 3 to 4-month long program for students studying in any university all across the globe. Google started this program long back in 2005 aiming to promote the open source culture among the college and university students. During this program, a student works with an open source community or organization of his/her choice for around 3 to 4 months on a project.
While working on a GSoC project you’re not directly employed with Google, sometimes people misunderstood that you’re interning with Google which is not the case, Google just provides a platform to a student and organization to work together.
Why Google Summer of Code?
- GSoC is a very good opportunity for a student to get familiar with the open source culture and also get the exposure working with bright minds in the community from different regions of the world.
- Learn how to work on a real-world project which you may see people using in their daily life and get mentored by amazing people.
- Helps you in networking and making connections with people in the fields of your work.
- Google grants you a stipend while working on a project remotely with an open source community.
- A tag of GSoC in your resumes gives you an edge over other students during placement interviews. Such a boost in your profile will surely help you in landing a great job.
- And a referral to apply for any position in Google.
Any many more.
When does GSoC happen?
To get selected open source organizations apply in January-February and selected organizations get announced in late February. After that students start looking for ideas and technology on which they want to work during the summer. After choosing the organization(s) they introduce themselves in organization chat channels and start discussing project ideas. Student application period starts somewhere after the mid march and which ends around early April. The organization reviews student applications and the results are announced early May. After the announcement of the result, a student spends initial days getting to know about the community and the kind of code practices followed by them and can finalize the proposal in case it needs to be finalized. After that, the student spends around 3 months working on the project coding. And results are announced in late August or early September. You can check out the whole timeline here.
Am I eligible?
You can go through this link and if you meet all the criteria mentioned in the students’ eligibility then you’re good to go.
How to prepare for getting selected in the Google Summer of Code?
You’ve to follow each and every step to maximize your chances to get selected in the GSoC programme but this doesn’t guarantee your selection. That is because of the major role played by the submitted proposal in the selection process. The dedication and the ideas that a student brings to the table while making contributions also have a significant impact on the selection process.
1. Start Early
You’ve to start as early as possible to maximize your chances of getting selected. To start early, some students go through previous year’s archives of GSoC and shortlist organizations based on the previous project ideas, tech stack of organizations, number of selections and number of successful completion of projects in the last years. You have to be a little careful while choosing the organization as there is a possibility that the organization is not accepting applications for GSoC that year or may not be selected as an organization under GSoC that year. But if it gets selected then this gives you an extra advantage over other students because you have already interacted with the community and contributed to their codebase.
2. Contribution
After shortlisting the organization start your contribution as early as possible, first introduce yourself in the community (maybe on slack public channel, IRC, or forum), go through their ongoing projects and repositories, set up the project environment on your system (believe me its the hardest part, if you crack this then code contribution is easier), then start picking up the issues filed in their issue tracker. Many organizations use Github, BitBucket and some use JIRA system for their feature and bug tracking. Start picking up issues or bugs which you think are easily fixable this way you’ll get used to their codebase faster. Some organizations welcome new contributors and assign issues themselves so that you can proceed with the contribution according to their defined standards. Some organizations tag issue based on their complexity and you may see tags like ‘contributor friendly’, ‘quick win’ or ‘good first issue’. This helps a newbie to decide which issues are easy to start with and ensures that you are not taking the complex ones at the start.
Get Lakshya Gupta’s stories in your inbox
Join Medium for free to get updates from this writer.
Contribution can be done in any of the following ways:
- Filing Bugs/Issues/Feature requirement
- Fixing Bugs/Issues
- Raising a PR for Feature or an improvement to existing code.
- Adding documentation for the existing features
- Reviewing PRs (if you’re a new contributor then you should not do this at an early stage because you may not be aware of their coding standards)
- Helping new contributors in setting up the environment.
- Helping people on the forum in resolving their queries.
3. Proposal (deciding factor in selection)
Start preparing your proposal in parallel to your contribution to the community. A GSoC project proposal is a document which consists of a detailed explanation of implementation which you’re going to execute if you get selected for GSoC.
How to write a good and quality proposal?
To write good and quality proposal first you should have a clear understanding of organizations requirements for a project. To get the idea you should ask a lot of questions related to the project if you have any doubts.
To write a proposal you can follow this link. A good proposal should consist of a detailed explanation of your approach and try to include database schema diagrams, flowcharts, architecture designs, wireframes, class diagrams, etc. These things make your proposal more appealing. And also try things out in case you find some approach infeasible. Add code snippets to backup your ideas. You can find a sample example here.
And try to finish the first draft of your proposal early and post it on the forum or slack channel so that you can get early feedback from the community and mentors. And keep improving your proposal and don’t wait for the last date to submit the proposal, I’ve seen people forget about the last date and misses to submit the proposal after so much hard work. Also, in the proposal mention about any of your prior commitments, if any like university exams, vacations, internships or any other opportunity.
For reference, you can go through my proposals that I had submitted for two different projects in the same community in 2018.
- https://docs.google.com/document/d/1nGsVjEr_Vc4fywn6yHKiLkR2kLcEz_VTJteVCrEnRfo/edit?usp=sharing
- https://docs.google.com/document/d/1I7VCN70CUg1FohncnGh64xAJ7QbykFbPKC_C2FMoVJY/edit?usp=sharing
How many proposals a student can submit?
At max, you can submit three proposals for three different projects, it may be in the same community or different.
4. Steps to be followed after proposal submission
After proposal submission, organizations reviews all students application for around 1 month so don’t stop contributing, keep contributing start discussing release process, join monthly meetings, development calls, interact as much as you can publicly on the channel. Go through other projects of an organization in case you can suggest some ideas for other projects as well. An organization will only invest time with students who want to be an active contributor to the organization even after the completion of GSoC.
FAQs
- Can I apply if I’ve any university exams during summers?
Yes, you can still apply but don’t forget to mention this in your proposal.
2. I have questions related to project and org so where should I ask questions?
Ask questions on public channels, don’t ping mentors on private chat. And don’t use @channel or @everyone on the channel unless it is not needed because if you use this then it will notify all the people on the channel.
3. I’m not sure whether to apply for GSoC or not because I don’t have enough experience or knowledge
This actually doesn’t matter, once you start contributing you’ll learn things and get familiar with the codebase and the language, everyone has to start someday so why not through GSoC programme. Even I started with the same question and I applied but didn’t get selected then I’ve applied again next year then finally I was able to crack it. So don’t lose hope, start contributing. Nobody knows everything, once you start you’ll get confidence who knows maybe you end up getting a chance to mentor a project some day.
Some tips
- Try not to leave things in between keep contributing, if its taking time then let them know. Whether you get selected for GSoC or not, and post GSoC programme, keep contributing don’t leave in between you’ll learn a lot of things, and sometimes these things give you an extra advantage in your job interviews.
- Try to have healthy competition don’t indulge yourself in something unethical. Organizations do notice these things for example if you try to work on issues which are assigned to someone else, you work on them just to increase the count of your contribution but your performance gets affected in a negative way.
In case you want to know about my GSoC experience and learnings you can go through this link.




