Google Summer of Code (GSoC) is a global, online program that brings new contributors into open source software organizations. The program began in 2005 and until 2021 was focused on bringing university students into open source. Starting in 2022, we have expanded the program to welcome all new contributors to open source who are 18 years and older to apply to the program as GSoC Contributors. These GSoC Contributors will write code and become part of these open source communities while making some money along the way. The organizations provide mentors who act as guides through the entire process, from learning about the community, to helping GSoC Contributors become familiar with the code base and testing practices, to finally releasing their code for the world to use! The ultimate goal is that these GSoC Contributors will become excited about the communities they are involved with during the program and will continue to actively contribute to the communities long after their GSoC program ends - or maybe start their own open source project!
Accepted GSoC Contributors gain exposure to real-world software development while having their mentor(s) ready to help integrate them into the community and help them become stronger developers. Best of all, more source code is created and released for the use and benefit of all; all code produced as part of the program is released under an open source license. The fact that you get to write code that people from all over the world can use - how cool is that!
Since 2005, GSoC has brought together 35,000 students and mentors from over 130 countries worldwide. As of November 2021, 746 open source projects, from areas as diverse as operating systems and community services, have participated as mentoring organizations for the program. Successful students have widely reported that their participation in GSoC made them more attractive to potential employers and that the program has helped greatly when embarking on their technical careers. Many past students continue to be involved in GSoC by becoming mentors themselves and helping new contributors learn about the exciting things their community is working on and the satisfaction that comes with being a part of a community of dedicated developers in open source.
Goals of the Program
The GSoC program has several goals:
- Inspire developers to begin participating in open source development.
- Help open source projects identify and bring in new developers.
- Get more open source code written and released for the benefit of all.
- Give newer developers more exposure to real-world software development (for example, distributed development and version control, software licensing issues, testing, and communication best practices).
A Brief History of Google Summer of Code
Google Summer of Code began in 2005 as a complex experiment with a simple goal: helping students find work related to their academic pursuits during their school holidays. In GSoC’s first year, 40 projects and 400 students participated. By the conclusion of the 17th Google Summer of Code in 2021, over 18,000 students have been accepted into the program. Best of all, most of the organizations participating over the past 17 years reported that the program helped them find new community members and active committers.
GSoC has grown immensely over the last 17 years and in the process helped students make the most of their summer by working on exciting open source projects.
You can take a look at the appendix if you’re interested in a more extensive history of the program.
There are four roles in the Google Summer of Code program:
Program Administrator: Program administrators are employees of Google’s Open Source Programs Office who run the program. These folks do a variety of tasks: select the participating open source projects each year, create and analyze the program evaluations, administer the program mailing lists, and ensure that participants are paid, maintain the web application, etc. Program administrators do not select which proposals are accepted into Google Summer of Code.
More broadly, program administrators provide useful advice to both new and seasoned participants in a variety of areas, relying on their experience with the program and mentoring process. Not sure how to handle a disappearing student? Wondering how to best improve your organization’s application for the program? Find a program administrator and ask away!
Organization Administrator: Org admins are the “cat herders” for GSoC open source projects. These people submit the organization’s application to participate in the program to Google, including making sure the Project Ideas list is solid, ensuring that mentors fill out evaluations in a timely fashion, and generally organize their project’s participation in GSoC. The org admin acts as Google’s go-to person if any issues arise. There are also some administrative tasks in GSoC’s online system that can only be completed by organization administrators. Some org admins also mentor GSoC contributors during GSoC, and that’s perfectly fine; it is just highly recommended that folks know they have enough time to execute both roles simultaneously.
Org admins are the final authority about matters such as which GSoC contributor projects will be accepted, who will mentor whom, and what the end date will be for a coding project. On the social side, if a mentor and GSoC contributor have difficulties communicating or making progress, an org admin will often step in as a neutral party to help the two work together more effectively. Org admins also help track down disappearing participants, whether mentors or GSoC contributors.
Mentor: Mentors are people from the community who volunteer to work with a GSoC contributor. Mentors provide guidance such as pointers to useful documentation, code reviews, etc. In addition to providing GSoC contributors with feedback and pointers, a mentor acts as an ambassador to help GSoC contributors integrate into their project’s community. Some organizations choose to assign more than one mentor to each of their GSoC contributors. Many members of the community provide guidance to their project’s GSoC contributors without mentoring in an “official” capacity, much as they would answer anyone’s questions on the project’s mailing list or chat channel.
GSoC contributor: A GSoC contributor is a person new to open source development who is excited to learn more about the community. GSoC contributors must be at least 18 years of age in order to participate (and from a non-US embargoed country). This person could be a university student, a recent graduate, a person switching careers, a developer early in their career, person returning to the workforce, etc. GSoC Contributors come from a variety of academic backgrounds - many are university students or graduates of coding schools or programs, while others are self-taught.
Potential GSoC contributors submit project proposals to the various organizations participating in GSoC. The organizations select which proposals they would like to see funded by Google. Many GSoC contributors have gone on to become important members of the open source community. Many GSoC contributors have also gone on to become mentors and even org admins for the program.
All of the program rules are enumerated in the GSoC Program Rules and Term documents each year. Provided all of the rules regarding eligibility for the program are followed, Google takes a fairly hands-off approach to GSoC. Each organization structures its participation in GSoC in whichever way makes the most sense for its technical and community needs.
Organization Applications: The GSoC program is announced each year on the Google Open Source Blog among other places, and this announcement provides application deadlines for projects. Each organization must apply to participate. Organizations usually have about 3 weeks to apply for the program. Google’s program administrators then select which organizations will participate in that year’s Google Summer of Code.
GSoC contributor Applications: Potential GSoC contributors are encouraged to begin talking to the participating organizations as soon as the list of accepted organizations is published. Prior to the opening of applications, it is important to take some time to talk to potential applicants. This helps them refine their ideas so that they will produce a better quality proposal. Each organization is asked to provide a proposal template, but the best applications go far beyond the template and an organization’s ideas list. Applicants are given about 2 weeks to complete their applications.
Following the GSoC contributor application deadline, organizations begin reviewing the proposals they received. During the review phase, organizations maintain an open dialogue with their applicants. This may involve clarifying questions in regards to the final proposals to ensure applicants and organizations have the same understanding of the proposal. It is important to note an applicant’s proposal can’t be altered after the final submission deadline, and mentor organizations should not attempt to do so during the review period.
Organizations may also conduct further interviews to determine which applicants are most likely to be a good fit for the community and work required. Over the course of several weeks, each organization prioritizes its list of proposals, ranking them and then submitting their requests for slots to Google. Google will let each organization know how many slots it will fund, and based on ranked order those proposals will be automatically selected (if given 5 slots, those proposals ranked 1-5 will be selected).
Sometimes an applicant has proposals accepted by more than one organization. Google leaves it to the organizations to decide which organization the student will work with during the course of the program.
Community Bonding Period: Before GSoC contributors are expected to start working, there is a three week period built into the program to allow them to get up to speed without the pressure to execute on their proposals. During this time, GSoC contributors are expected to get to know their project communities and participate in project discussion. During this time, GSoC contributors should also set up their development environments, learn how their project’s source control works, refine their project plans, read any necessary documentation, and otherwise prepare to complete their project proposals. Mentors should spend this time helping their GSoC contributors understand which resources will be most useful to them, introducing them to the members of the community who will be most helpful with their projects, and generally acculturating them.
For 2022 there is increased flexibility in the timeline for projects. When proposals are submitted they will be selected as a medium (175 hour) or large (350 hour) project. The standard coding period will be 12 weeks. However, GSoC contributors can request (in their proposal) to have a longer coding period to complete their project as they know they may have various other commitments or certain weeks when they will not be able to commit as much time to their GSoC project (up to a 22 week coding period is allowed). This opens it up for the GSoC contributors and mentor to decide together how they want to break up the project. Some folks may choose to stick to a certain number of hours a week schedule with their GSoC contributors, others may factor in a couple of breaks during the program (for GSoC contributor and mentor). This also makes it a lot easier for GSoC contributors with finals or other commitments (weddings, moving across the country, etc.) to adjust their schedules. But the most important thing to remember is that both the GSoC contributor and mentor should agree on a schedule and sign off on it early on during the community bonding period so there is no confusion later on.
Start of Coding: Start of coding is the date the program officially begins; GSoC contributors are expected to start executing on their project proposals. At this point, GSoC contributors should begin regular check-ins and regular patch submissions.
Coding Ends: At the final deadline for coding, GSoC contributors are welcome and encouraged to continue work on their projects, but only work done before this date can be evaluated. Google suggests that all work be complete about a week earlier to give the GSoC contributor time for last-minute improvements and corrections, as well as preparing their work for delivery. GSoC contributors also need to submit mentor evaluations during this time and a link to their code.
It’s a primary goal of Google Summer of Code that the GSoC contributors stick around long after the program has ended and continue contributing to their project communities. Great mentors continue working with their GSoC contributors to encourage them to do so. It’s also customary during this time for organizations to publish a post-GSoC wrap up report. Mentors and GSoC contributors take a well-deserved break, but energetic organizations begin planning for the next GSoC during this time.