How to GSoC: Lessons from my open source journey

From Google Summer of Code, to Grayhat.

How to GSoC: Lessons from my open source journey
Photo by Jonny Gios / Unsplash

When I was in third year of university, I came to know about the Google Summer of Code (GSoC) program through YouTube. For those who don’t know about GSoC, it is a prestigious program (sort of an internship) which Google has conducted every year since 2005. Google selects a number of open-source organizations each year.

Contributors then submit their proposals to different projects of different organizations, and each organization accepts or rejects them based on the contributor’s past involvement and the quality of their proposal. Once accepted, one work on the project for 3 to 4 months under the guidance of assigned mentors. The goal of GSoC is to bring new contributors into open-source organizations. It really motivated me to participate mainly because I wanted to work on software that is used by millions of people, gain hands-on experience with real-world projects, have Google on my resume (which is a pretty cool thing!), and of course the stipend was a great bonus.

After my third year ended, I got a 2-month break, and I thought, why not give it a shot? I began exploring different organizations in July 2024, and I found this website extremely helpful. It provided all the essential details about each organization including how many times the organization participated and in which years, the tech stack of that particular organization, and past selected contributors. Overall, it offered a comprehensive overview of each organization.

💡
Tip: Choose the organization which has participated in GSoC for multiple years. It’ll have a high chance of coming again in the upcoming year and will also be selecting more contributors, not just 1 or 2.
💡
Tip: Choose the organization early.

I chose Sugar Labs as my organization in mid-July 2024 because its mission aligned with my interests. Additionally, its consistent participation in Google Summer of Code (for over 10 years) and the high number of contributors selected each year made it a strong choice. Sugar Labs has several projects, including Music Blocks, Sugarizer, Sugar, and many more. My interests and tech stack aligned best with Music Blocks. It is a visual programming language and a collection of manipulative tools for exploring musical and mathematics concepts in an integrative and entertaining way.

My first step was to find the communication channels where I could interact with the project maintainers. Most of these links were available in the README file of the GitHub repository. I was able to find those and introduced myself to the community.

💡
Tip: Most of the questions that come to your mind are already answered in the documentation, so make sure to read that first. If something is unclear, then one can reach out to the maintainers. Many contributors skip reading the documentation and ask basic questions directly, which can sometimes frustrate the maintainers.

Next, I went through its documentation. Most of the questions I had, such as how to set up the project locally, how it works, etc., were clearly answered there. After reading the documentation, I successfully set up the Music Blocks project on my local machine.

💡
Tip: Before contributing, try to play with the project, understand how it works, make some changes to the code, and see if they are reflected.

I experimented with the project by changing the text on a button to check whether it was reflected or not. While exploring the project, one may come across several bugs; ocan report them or even try to fix them.

I was experimenting with Music Blocks when I found an issue in their JavaScript editor: there was an extra line number. I decided to fix it, which eventually became my first open-source contribution.

I located the relevant code, and the Visual Studio search functionality helped me a lot in finding it.

💡
Tip: One don’t have to understand the entire codebase of the project, start small.

The code was adding 1 to the line count. I just removed it and it worked.

I tested it thoroughly and created a Pull Request for it. To my surprise, it was merged within 3 to 4 hours. I was so excited and happy about it. It actually motivated me to make more contributions.

💡
Tip: These contributions and communications with the maintainers actually build trust, and there are high chances of one being selected.

Afterwards, I made several more contributions. All my contributions can be found here:

 https://github.com/sugarlabs/musicblocks/pulls/haroon10725

Through these contributions, I learned not only how to write better code, but also how to communicate effectively and document my work properly.

GSoC organizations are announced around February 2025. The organizations that apply to the program publish their idea list around January, so contributors can choose the idea which excites them the most and start exploring it.

💡
Tip: At max one can submit 3 proposals in GSoC; try to submit at least two proposals for 2 different projects to increase your chance.

Sugar Labs also started to publish their ideas around December and January 2025. I chose two ideas from the list and started exploring them.

Then from the end of February 2025, I started to work on my proposals. I created two detailed proposals that included my past contributions, how I would complete the project, and a timeline.

💡
Tip: Make sure the mentors assigned to the project review your proposal and give feedback on it.

I asked the project mentors to review my proposals. They reviewed them and gave me detailed feedback. I improved them and then submitted them to the GSoC website one week before the deadline, as 8th April 2025 was the last date for it. I was pretty confident that I would be selected due to my past activity with the organization.

But unfortunately, when the results were announced on May 08, 2025, I was not selected. But this didn’t stop me from making meaningful contributions. After 3 to 4 days, my mentor reached out to me saying that “there is still a chance we can get you into GSoC; Google has opened some additional spots and we are going to nominate you.” I was so happy and thanked my mentors. But luck was not on my side and I couldn't get selected.

But then Sugar Labs announced their Sugar Summer of Code 2025. This was the first time they did it, and I was their pilot candidate for it. Under the guidance of my mentors, I created an AI Sample Generation tool which can create endless samples. A small demo of it can be found below:

After completing my internship, I didn't stop contributing. I have continued to stay active in the Sugar Labs community, contributing in various areas. In addition, I've explored and contributed to several other open-source projects such as UniversalPython, which has helped me broaden my technical skills and understanding of collaborative software development.

I strongly believe that contributing to open-source projects is one of the best ways to gain hands-on experience. It not only sharpens your coding skills but also teaches you how to collaborate effectively, communicate with the maintainers and work on real world software used by people around the world.

At the last I would like the thanks my mentors; Walter Bender (https://github.com/walterbender) and Devin Ulibarri (https://github.com/pikurasa) for their guidance throughout the journey and Saad Bazaz (https://github.com/SaadBazaz) for guiding me in open-source.