What to do before, during and after writing your project proposal.
Google Summer of Code is a global program which encourages students to work on a programming project with open source organizations during their break from university. If you do not know much about it, take a few minutes to watch this video, and read the official FAQ.
Oh! This looks interesting. Excited to get started?
But wait, how exactly do you go about this…I hope the following checklist helps you find your way. Let’s get going.
Get a Head Start
- Start early, start now
Wait, it has a summer in its name. Why start now? Stop thinking it is too early to start. Your aim should be to get to know communities, explore the projects they work on and build a genuine relationship with the members. Your efforts might end up in you spending the summer with them, but that shouldn’t be the driving factor of your conversations right now.
- “But I don’t know anything!”
That is completely okay. GSoC is a program where students are (genuinely) encouraged to spend the summer learning new stuff. So let go all of your inhibitions, and decide to jump right in.
- Find an open source community to be a part of.
This may or may not need to be the one you end up spending the summer with. You can choose a community because you like the projects they are doing, it was in one of the courses in college or simply because your friend contributes to it. The official applications start late March, so it’s good if you take this time to build relationships with your potential mentors and other community members.
- Wait, you don’t know how to find a community?
Take help of GSoC’s previous year organizations. There were 206 organizations taking part in 2018. Explore the project, the kind of work students did, and the communication channels each organization had. Don’t be lazy, do your research.
- Start lurking around.
Hang out on IRC channels, Telegram, Slack, Gitter, and mailing lists. Observe how a bunch of strangers, over remote locations, function in perfect harmony. Learn the rules on how to communicate, be it on IRC or any other platform. Respect them.
- Time to jump in.
Explore the codebase of the organization that has got your fancy. Most projects have thorough documentation on what the project is and how to contribute.
- Enough with lurking.
Find a small bug to fix or a minor improvement to make. Find issues tagged with #easy-fixes, #hacktoberfest, #newbie, etc. You need not move mountains. Even, fixing a typo in README.md is good enough as a start.
- Oh wait, do you remember
I told you I know nothing?!! Don’t fret, that was me too. Learn enough git to be dangerous. Learn enough command line to be dangerous.
- Set up the local development environment
Set up the local dev environment for the organization you want to contribute to. It is usually tricky. Do not estimate your skill set based on it. Read the documentation. Ask for help when you get stuck. Don’t give up halfway!
- Start thinking about your project proposal.
By now, you must have a local dev environment set up, fixed a few issues and even chatted with the community members. Organizations usually release project ideas before the student application period. Feel free to pitch in with your ideas.
- Help other newcomers.
IRC channels start getting crowded as the application period nears. Don’t be insecure. Don’t be a jerk, it’s easy to recognize one.
Write Your Proposal
- Structure your ideas for a proposal
Look at the past proposals by the students of the organization. Go through any available guidelines by the community, like this one by KDE, or this by Fedora. Start structuring your ideas in the required format. My two cents, have one proposal which is solid, rather than multiple loosely thought proposals.
- Get early feedback and ACTUALLY implement it
Gather early feedback from the mentors and the community, and actually implement it in the final proposal.
- Don’t be a stalker or a creep.
Talk to potential mentors about your ideas. Avoid messaging personally, unless the mentor suggests it. No one is going to steal your idea. You have spent time building trust with the community, it’s going to work for you now. It’s not about the idea, it’s about the potential to execute it.
- Play fair.
Be honest with your timelines for the summer, free time you have and skill set you possess as of now.
- Keep in mind the timelines.
GSoC is pretty strict about it and there is nothing that can be done if you miss them. Yep, nothing except waiting another year.
- Hit Submit. Ta-da!
Submit your proposal, and hold your breath. Just kidding, take a breath. You have done an awesome job!
I read this advice in a GSoC experience before starting my journey, and this advice is gold. It’s a long journey, and self-doubt is a thing.
Find a set of people who believe in you more than you believe in yourself.
This story of summer started in a dull grey winter at home. Bored, I started lingering around IRC channels and much…hackernoon.com
Probably not the best time to be writing this blog considering Google Summer of Code 2019 is still almost a year away…medium.com
Keep looking at the bigger picture. If nothing, you are now a part of a community, and the work you have done is out there in the open for you to use in your future job applications.
I hope this was helpful. Follow this space, as I plan to keep writing about my journey of GSoC as a designer, experiences with my amazing community, and tips about contributing to open source and GSoC. I missed doing it during my internship, about time I make it up and do my bit! :)