Google Summer of Code is an open source program that is managed by Google's Open Source team.
They invite developers to spend their summer contributing to the source code for various different organisations taking part in the program.
There are many organisations that list their project ideas for participants to choose from. Last year, in the 2022 season, a whopping 202 different organisations took part in the program and the program ended with around 1166 projects being completed.
Think about the sheer amount of code that was written and how much open source organisations and users in general benefited from it. You can learn more about last season here.
I was among those contributors, writing code for the TUF project. My work involved introducing backwards compatibility to TUF's Python client so that downloading metadata adhering to different tuf versions could be easily managed.
I am writing this tutorial to teach you about GSoC and how you can increase your chances of getting selected into the program. I'll also go over how it'll benefit you both from a learning and a career perspective. I hope it will get you inspired enough to contribute to open-source and apply for GSoC, even if you've never done that before.
GSoC follows a similar timeline every year. You can find the page for the 2023 session here.
The page pretty much explains all you'll need to know, and you can find the precise dates for each announcement. But still, I'll share my tips on how to prepare for each step of the journey and the best courses of action to take along the way.
The first 3 announcements are org-specific. Meaning, you don't have to worry about them since they are dates for organisations to apply to have their projects included as part of the GSoC program.
Once the orgs get announced, start going through the list and take a look at the project ideas that seem interesting to you.
Don't target too many orgs. Try to go for a maximum of 2 or 3 project ideas within the same org. This makes you drive your efforts towards participating in that org and that really boosts your chances of getting selected.
Targeting too many orgs divides up your efforts and it may result in you not getting admitted into the program.
Filter through the orgs by entering your preferred programming language/org name/topic in the search bar. Once you open up an org's page, you'll be able to find the technologies and topics mentioned. Let's take a look at CNCF's page:
Here you can see all the different technologies and topics. Don't be discouraged if you don't know all of the tools, since those lists are for all the project ideas mentioned under the org (so there's a high chance that your particular project won't require all of them). Plus since the program is a learning experience, you'll be learning those topics yourself.
Click on the Ideas List next, and you'll be taken to a page that will show you all the different project ideas under that org. This is where you get to read through the description for each project and look at the tech stack for each one.