If you have heard of Google Summer of Code but aren't sure how to apply, then read on.
Whether you are a college student or a working professional, GSoC now is open to both.
What is GSoC and How Does it Work?
GSoC is a program that encourages contribution to open source projects. It starts with the application process. Students apply once the organizations are announced. Then GSoC declares which projects are accepted into the program and the coding period begins.
If you are relying only on your college grades or work experience to get into the program, think again. It is not an interview that will help you get your foot in the door based on your qualifications or résumé. You have to submit a project idea. And it needs to be an idea that the organization is excited about and that the program wants to fund.
Don't forget that you will work on this project for 12 weeks or even more (if your project needs more time and the organization agrees). So make sure you propose something you want to build, fix, or revamp. It should be a project that fuels you to deliver your best.
What happens when the GSoC results are out?
If you are in the Indian timezone it is around midnight when the GSoC project announcement emails start pouring in. Depending on the result, you might be having a pizza party or blinking away tears.
If the results went your way, congratulations for making it into the program. For the next 3 to 4 weeks you have a community bonding period. Here you get to know your mentors and team.
You might kickstart or brainstorm your project. If you are someone like me who changed your personal commitment if you were to get selected, you'll need a change of plans. Devise a new plan for the coming months and make new goals. Keep exploring different projects, and by the time the GSoC application period arrives again, you will know which organization you want to apply to.
Once the contributing period ends, the coding period starts. This period is divided into two phases. You have to propose two major deliverables for each phase.
You need a thorough plan for phase 1. Make sure you meet your weekly goals. In the next 4 to 5 weeks it will be time for your first evaluation. Before the evaluation, you should have delivered your first deliverable. Your mentor will submit your evaluation to the GSoC team. Once the evaluation is submitted 45% of your stipend will be released. This marks the end of phase 1.
In phase 2 you will start working on your second deliverable. This final phase is of 6 to 8 weeks. Along with completing your project, you also have to document, test, demo, and hand it over to the organization. Your mentor will evaluate your performance and submit it to the GSoC team. This marks the end of your contribution period.
Your organization then decides whether your project was a success, and depending on this your pending payment is released.
What's new in GSoC 2022?
For the past 17 years, GSoC was solely focused on university students. The aim was to give them some industry experience in the summer and prepare them for real-world software development.
In 2022 this has changed. GSoC has opened its doors to contributors from all walks of life. You may be a student, working professional, or retired veteran – if you can code you are welcome to the program.
Also starting this year two types of projects have been announced: medium-sized and large-sized projects. A medium-sized project would be ~175 hours and a large-sized project would be ~350 hours. Previously you had to do a large size project for 12 weeks.
In one of the blogs, Stephanie shares what is new in GSoC 2022, and the thought that goes behind it.
We realize there are many folks that could benefit from the GSoC program that are at various stages of their career, recent career changers, self-taught, those returning to the workforce, etc. so we wanted to allow these folks the opportunity to participate in GSoC. – Stephanie Taylor, Program Manager, Google Open Source
You can extend your project for a few more weeks depending on your organization's discretion and the complexity of your project
These new changes cater to the different needs of the organization and contributors.
Why should I apply to GSoC?
- GSoC allows you to contribute to projects that have made a significant mark in the world.
- You get to network with some of the best engineers around the world.
- You are assigned a mentor. With a mentor as your guide, you can speed up things that otherwise might have taken you a long time to figure out by yourself.
- You are paid a stipend (to help you sustain and concentrate on the project) for the time you dedicate to the project.
- You will learn many best practices of coding, and write production quality code.
Nothing matches learning from the experts of the industry.
Am I Eligible for GSoC?
A contributor is eligible for GSoC if:
- They are 18 years or older.
- They are a beginner in open source.
- They are not restricted legally or geographically from contributing.
GSoC has no other criteria. As this is a summer coding program that does not require office visits, you need to have a setup where you can code along with a good internet connection (at least video call quality).
How to Apply to GSoC
You can think of a GSoC proposal as a university SOP. Submitting the SOP takes a few seconds. You start preparing for your SOP a year or so in advance by doing internships, participating in various programs, and working on personal projects. This will help your SOP be strong and stand out.
You'll need to put in quite a bit of effort and time to the GSoC proposal as well. As GSoC is for open source beginners, you could have been be contributing to open source for a year or less and are eligible to apply for the program.
I started contributing to open source in Feb 2022. I came across the Github repository that has a list of beginner-friendly projects along with the label names you should look at. That's how I found my first organisation to contribute to open source: freeCodeCamp.
After making minor document changes, I wrote test cases for freeCodeCamp's CodeRadio Client, and this was my first actual code contribution.
That's how came across Open Food Facts, a food database that holds details about each food product. The information comes from the manufacturer's nutrition details. The project is turning 10 this year and has 2.3M+ food products, 2.7M+ monthly visitors, and has reached 182 countries (Source: Open Food Facts blog).
How did I select my first GSoC organization?
Selecting the right organization is as important as writing a good proposal. If your goals do not align with the organization there is a high chance your proposal won't be accepted.
Here are the reasons why I selected Open Food Facts as my first GSoC organization:
- I was able to set up and run Open Food Facts Hunger games repository easily. Previously I had tried to set up Chrome, Brave, and Django but wasn't successful. I was aware of how difficult things can get at the setup stage itself.
- It was easy to understand what they did. I quickly found a beginner-friendly issue and commented on it for further guidance. (A beginner-friendly issue is already picked by the organization and reserved for beginners. It is usually under the label: first-timers only, beginner-friendly)
- Mentors here were super supportive. I am grateful for their guidance and trust. It was because of their timely guidance and mentorship that I completed my proposal in time.
- Coming to non-technical reasons, I had started late in March and the deadline to submit the proposal was the third week of April. I did not have enough time to explore many organizations. I focussed on quality instead of quantity. You can submit at most 3 proposals to GSoC. I worked hard on only one proposal and gave all my time and energy to it.
- Open Food Facts has scope for both ~175 hour and ~350 hour projects.
How I wrote my first proposal
The proposal is the heart of your GSoC application. The strength of your proposal is directly proportional to the chances that you'll get selected.
A proposal is divided into the following parts:
You should be able to prove that you know what you are talking about. You should demonstrate the motivation behind your project, and how it will help the community.
Why is it worthy of your mentor's time? What is the long-term impact? You should be clear about what you are doing and why.
Describe your deliverables in detail. Depending on your project you might have one or two major deliverables, and minor deliverables each week.
Each deliverable should be broken down into subtasks that you will complete each week. A delivery should include: detail description of your solution, any unforseen challenges, and how you plan to cope with them.
Deliverables with a timeline is the best way to convince your organization that your goals are well planned. Everything might not go to plan, so it is a good idea to leave some room for uncertainties.
Be clear about the size of your project, the number of hours you will be available each week, and what is the best time for the mentor to contact you.
Proof of your capabilities:
The organization does not know you, so it's up to you to prove that you are capable of achieving everything you claim.
Share links to all the open-source code you have written. Write about your background, what you like to do in your free time, other non-coding activities you do, and how they will help you succeed in GSoC.
Background on yourself:
Mention your commitment to other things (university, jobs) that will keep you away from GSoC, or any personal plans to take some time off.
Share you contribution to other open source projects, as this will help the organization trust you that you know to work with remote teams, and will stay committed to the project.
GNU Radio has an established road map to becoming a successful GSoC applicant.
How I Applied to GSoC with a Full-time Job
Whether you are a university student or a working professional, time is limited for everyone. When I started open source contribution I was working from home. This saved traveling time and I spent my weekends contributing to GSoC.
If you are someone with a full-time commitment I would suggest the following:
- Identify how much time you can spare each week.
- Plan your project around that time.
- Let your mentors know about your commitment, available hours, and the best time to contact you.
I had proposed a ~175-hour project. I also mentioned in my proposal that I could contribute 16-18 hours each week and my maximum availability would be on weekends.
What if I'm Not Selected?
Being turned down does not mean you cannot apply next year. Asking for feedback from the mentors is the first step in identifying your weak areas. The second step is working towards them.
GSoC is a part of the open-source journey. You can always contribute to your favorite organizations and keep exploring.
To those that didn’t make it into the 2022 edition, my message is “don’t give up”. Rather, reflect on what you can do to have a stronger proposal for the next GSoC edition. – Source: Jenkins message to GSoC 2022 Applicants
Where Can I Get Some Help and Guidance?
There are people there who will help if you ask. No one can write your proposal for you, but they can guide you while you're writing it.
How do I get help as a beginner in the organisation?
When you are working on an issue and get stuck, you can post your questions and doubts in the organization's chatroom (Slack channels, Discord channels, IRC channels, Google groups). Someone will answer your questions.
Posting in a group is always better than messaging someone directly. In a DM you're relying on one person, while in a group many people will read your question, and you might get a faster response.
Whom do I ask help for writing/reviewing my proposal?
Once you have completed your proposal it is always a good idea to get it reviewed before the final submission.
Proofread it yourself first. You can then ask your friends or family to proofread it again. A fresh pair of eyes can catch a lot of things you might have missed.
Make friends with people in GSoC and the open source community. You can ask fellow GSoC participants to review your proposal. You may find open source enthusiasts who are open to guiding you on LinkedIn, Twitter and other social media platforms. Search for them with hashtag #gsoc.
Tips to Help You Succeed in GSoC
Here's what I would advise if you're applying to GSoC:
- Be nice: You are not interacting with robots, but rather humans at the other end who may be separated by timezones. They might have other full-time commitments apart from the project. Be kind when asking questions and waiting for a reply. No one wants to work with someone who doesn't treat them fairly.
- Be patient: A famous quote says: good things come to those who wait. Learning new things is never easy. It requires you to get out of your comfort zone, push yourself, and manage your time.
Understanding a new project demands both - time and patience. Don't try to understand the whole project at once. Start with the part that interests you and go up.
- It is not a rat race: GSoC is not a competition or a race. It is an experience, an opportunity to contribute to products you have been knowingly or unknowingly using in your day-to-day life. You can continue doing the good work without GSoC as well.
As a GSoC contributor, you will be accountable to someone. There will always be a mentor to guide you within the organization when you get stuck. Enjoy the process while you are at it.
- Start early: A strong proposal is well-thought out and well-written. This requires the exchange of ideas. Some organizations are open to proposals that are outside their ideas list. Discuss it beforehand, submit PRs, and assure the organization that you can pull off your idea in the proposed time period.
Start as early as possible. If your proposal is ready before time, say before the application window opens, you can ask the organization to review your proposal. Get their feedback and incorporate it. You cannot make changes to your proposal once the application window closes.
- Discuss and ask questions: Mentors understand that you cannot figure out everything by yourself. Before asking a question, make sure you've read the documentation well, and show that it is well-researched. Communication plays a very important role here.
It's time to say goodbye now. Before leaving you, I want to share that I was not selected for GSoC this year. I did ask for feedback from my mentor and I'm working on improving myself.
I will continue contributing to open source, and I'll explore new organizations and apply again next year. So should you!
I also encourage you to read Dheeraj Singh Jodha's story and learn from his GSoC 2022 journey.
I was looking for a job right after graduating from my college and landed an internship which was exciting and highly challenging.
Plus, one important thing is that I didn't know that I'm even eligible to participate in GSoC 2022 till Oct 2021 when Google announced that they were expanding their program to everyone. Otherwise, after graduating in June last year, I believed that I would never be participating in GSoC. I'm glad Google took this big step to make this program more inclusive.
As they say "Life doesn't make sense as we go on, but makes perfect sense when we look back." – Dheeraj Singh Jodha, GSoC 2022 contributer @Jenkins project
GSoC has extended the eligibility criteria and allows multiple projects of varying time spans. This is a great opportunity to find a project that suits you best. What's keeping you from getting in the program?