Quick introduction to GSoC
Google summer of Code (GSoC) is an annual program funded by Google to encourage students in crafting open source software. Every year Google selects mentoring organizations. Students are paired with mentors of the mentoring organizations to work on their projects. The coding period spans for 3 months and students go through 3 evaluations within this period.
As a student, GSoC is one of the prestigious programs that you can participate in. According to 2017 statistics 1,318 students got accepted and more than 4,200 students got rejected which concludes that acceptance rate is around 20–25%.
Stages in GSoC
Technically there are 4 evaluations students must go through in order to complete a GSoC project successfully.
Projects are listed under each selected organization. In order to narrow down the list of organizations, use tags associated with every organization. For an example the Sustainable Computing Research Group (SCoRe) organization has Cloud, Blockchain, Go and Node.js as tags. This will provide a quick filtering option for students to select the most suitable organizations for them.
Most likely you’ll end up with a maximum of 5 organizations. If not, you’ll have to go through each organization and look into the projects in detail and see what they expect you to accomplish within the 3 months period. Only 3 proposals can be submitted by each student and one student can work only on one project.
To increase the chance of getting selected it’s always a good idea to submit 3 proposals for 3 projects. Every organization provides a custom template for proposals.
While submitting any draft proposals, you should contribute to any existing projects of the organization to prove the capability of completing a task. This will be a value added aspect that can be added in the proposal as well.
Before proposal deadline ends, make sure to share your drafts with mentors and try to get their feedback. Good communication with mentors plays a huge role which I will address later.
Here are my proposals that I submitted to SCoRe organization:
After submitting proposals it’s totally up to the mentors who they will select as students for their projects. Having a solid proposal as well as contributions to projects will be the key to getting selected.
Community bonding and Evaluation 1
If you made it this far, congratulations! 🙌. You’ve passed one of the hardest milestones.
Now it’s time for community bonding, which is a period to introduce yourself to the community and get to know other mentors. During this period students will make changes to their proposals if needed after discussing them with their mentors. This will help to clear out any ambiguous ideas and create a really solid project proposal as well as a refined set of milestones to be completed. Just in case students are not familiar with the technologies required for a project, they have the chance to learn. Community bonding usually lasts for a month.
After the community bonding period, the coding period starts and students start their project work. Every organization has their own way of evaluating students. Some might have daily assessments or daily scrum if an Agile approach is taken, or maybe weekly updates. So you must adhere to whatever the process used by your organization.
Part of these update usually requires writing a blog post with the progress. Even if it’s not a evaluation criteria for your organization, it’s a good practice to write update blog posts. This will clearly show your progress and what you’ve learned. Following is my GSoC blog where I updated my weekly progress.
When the first coding period ends, students submit their work to mentors through the GSoC web application. Mentors will pass or fail students based on the progress.
The second coding period begins just after the first evaluation. In the second stage I would highly recommend students to have a thorough discussion with mentors to discuss any necessary changes to processes. With this you’ll be able re-evaluate any short comings and take required actions. This benefits both students and mentors in terms of the project success.
If you’ve worked on the project with high quality, it’s the perfect time to increase your pace and catch up on anything you’re lagging behind. This will depend on comments from your mentor. At the end of the second coding period, students must submit their work.
This will be the last evaluation and an important stage. Again having a thorough discussion with mentors to evaluate where you are, and get an idea about milestones you need to complete.
Also this is the stage where you need to complete documentation related to the project, if you haven’t focused on that. At the end of the third period students must wrap up things and make sure all the requirements are completed in order to pass GSoC. Make sure you’ve exceeded mentors’ expectations.
Communication is key
Communication with your mentor is really important, as it will decide every decision since GSoC is a remote program. Nobody will have meet ups with mentors to discuss projects.
At the initial stage, regularly communicating with mentors — and changing draft proposals and providing suggestions — will create positive impressions on mentors about you as an active student who’s willing to put the effort for a project. In my point of view, this is the deciding factor which differentiates you with other students — except for the contributions for an organization. Therefore, keep in mind to communicate with your mentor regularly and provide progress updates.
For each evaluation completion, you’ll receive a stipend (this depends on the country that you live) and you’ll earn a certificate and Google swag after passing all evaluations.
There you go that’s what you need to know to complete GSoC. Make sure to start early and regularly communicate with your mentors. Good luck! 👊