Google Summer of Code (GSoC) can feel overwhelming when you’re starting, so here’s a breakdown of my journey and the steps that helped me along the way. I hope it gives you insight into the process and a sense of what open-source work can offer.
Phase 0: What is GSoC?
For those who are unfamiliar with GSoC, here's a quick overview.
Google Summer of Code (GSoC) is a fellowship program run by Google to promote open source among young developers. It’s an incredible early career opportunity that introduces developers to real-world projects, providing mentorship and a hands-on experience solving real problems. Hundreds of reputable organizations participate each year, so the first big challenge is to choose a few that you might be interested in contributing to.
Phase 1: Selecting the Right Organization
Choosing the right organization is one of the most critical steps. Here’s what helped me narrow down my choices:
- Consistency - How often does the organization participate in GSoC?
- Tech Stack - Does it align with my skills and interests?
- Popular Projects - What types of projects does the organization support?
- Community Reach - Is there an active platform to connect with maintainers and contributors?
This site GSoC Organizations helped me a lot in checking these metrics and finalizing some organizations from among hundreds.
NOTE:
I kept a list of organizations and projects, organized by which ones I felt I could contribute to most effectively.
Here’s a snapshot of my tracker:
Phase 1.1: Setting Up to Run Projects
This is more of a tip rather than a phase!
I started on Windows but soon encountered dependency and setup issues, so I switched to a Linux dual-boot. This made working with codebases smoother, especially for complex, open-source projects.
For anyone just starting, having the right environment can make a huge difference!
Phase 1.2: Making Contributions
For each organization, I explored their goals, checked out their codebases, and worked on setting up their projects. This was initially overwhelming—some of these projects have thousands of lines of code! But you don’t have to read everything. Using code search tools (like Ctrl+Shift+F
in VSCode or GitHub’s search) was a lifesaver.
People often recommend starting with “Good First Issues,” but keep in mind that some of these issues are left unattended for years and may not be actively managed. Instead, try to get a sense of which issues are realistically doable, though this can be tough at first.
TIP:
Use the product or project as extensively as possible before diving into contributions. As you explore, take note of any missing features or areas that could be improved. Raise an issue based on your insights, then contact maintainers to discuss it. Engaging with maintainers shows initiative, and they can help you shape your approach, giving you a clearer starting point.
Phase 2: Finalizing Organizations
After contributing to a few, I shortlisted Rocket.Chat, Zulip, and p5.js as my top choices. I also kept an eye on new organizations each year since they often attract fewer applicants.
I dove deep into their projects, interacting regularly with the community and exploring not just the main repository but also smaller, related projects. This was a literal game-changer,
I found sub projects that aligned with my skills and interests, giving me the perfect entry point into Rocket.Chat, where I ultimately focused.
Eventually, I found Rocket.Chat’s community to be highly responsive, and I had a clear understanding of their goals. So, I decided to focus solely on Rocket.Chat, even though having a backup plan is generally recommended.
NOTE:
Do what feels right for you. This choice worked well for me.
Phase 3: Engaging with the Community
As I continued contributing, I became a regular in the Rocket.Chat community. I attended sessions, connected with mentors, and had great conversations with senior developers. The experience taught me how valuable open-source collaboration can be. Contributing isn’t just about code—it’s about connecting, learning, and growing as part of a community.
Key Takeaway: Be active and consistent! Participate in discussions, attend meetings, help beginners with their problems and share your ideas. You’ll gain much more than just technical skills.
Phase 3.5: Finding the Right Topics & Tackling Roadblocks
At this stage, you've likely gained some familiarity with your organization’s codebase and goals.
But the question arises: What should you work on?
Here are some strategies that helped me:
Look for Active Areas: Try to focus on parts of the project where maintainers or contributors are actively involved, as these are often higher priorities. Watching community discussions or recent commits can give clues on areas in need of improvement.
Understand Project Gaps: Dive into using the project’s product to identify gaps or potential enhancements. What’s missing? What could be optimized? Raising issues based on your observations is a great way to show initiative and can lead to impactful contributions.
Tackling Roadblocks: When stuck, don’t hesitate to reach out. I found that explaining my challenges to mentors or fellow contributors often brought fresh perspectives or resources that helped me move forward.
Engaging with others in the community is key!
My first interaction with Rocket.Chat was me trying to add the good old "Dark mode" in their documentation.😅
Just be consistent, go where your interest takes you and enjoy the hustle!
Phase 4: Proposal Period
Once projects were announced, I narrowed my options to two main ideas: “AI Translator” and “API Documentation” for Rocket.Chat. Writing and refining proposals is tough but rewarding. I went through multiple drafts, getting feedback and revising up until the last minute. One of my final revisions was literally submitted 30 minutes before the deadline!
Though I was unsure about the “API Documentation” project (since I was new to the technologies it used), I felt it would be impactful for the community. This intuition paid off!
Now, I won’t go deeply into the specifics of drafting proposals here—that’s a topic of its own. My advice for beginners is to get comfortable with open source first and understand how everything operates. If anyone wants a guide on proposal drafting or insights on the project itself, I’d be happy to share a follow-up post. 😊
Final Thoughts
If you’re considering GSoC, remember that it’s not just about the stipend or the “prestige.” GSoC is an opportunity to learn, contribute, and grow. You’ll face moments of doubt and frustration, but if you love open source, stick with it. Remember why you started, keep learning, and trust your own journey. GSoC is one path, but it’s not the only way to make a difference in open source.
Wishing everyone the best on their journey—good luck and happy coding! ✨
Top comments (1)
Thanks for the guidance