Google Summer of Code 2015 is approaching and few people started asking me about how to get selected in GSoC 2015 and where to start. So I though to go ahead and write a blog post so that others can also benefit. This post targets students who have never participated in GSoC before and want to know how to get started with the application process and open source in general.
What is Google Summer of Code? How it works?
The GSoC FAQ page should suffice to answer most of your queries and I strongly suggest to go through it before looking anywhere else for answers.
Google Summer of Code is a program that offers student developers stipends to write code for various open source projects. We work with many open source, free software, and technology-related groups to identify and fund projects over a three month period. Since its inception in 2005, the program has brought together over 8,500 successful student participants from over countries and over 8,000 mentors from 109 countries worldwide to produce over 55 million lines of code.
So, basically this is how it works:
- Different orgs (open source organizations) submit their applications to be part of the program and Google chooses about 190 of those based on their application and past record.
- Once the orgs are selected, the list will be available on Melange. Each org will have an ideas list and a homepage.
- You need to choose one of the ideas from the list on the ideas page and submit your proposal. (Details on this below)
- Then you wait for Google to announce the list of selected proposals. If you find your proposal there, then the hardest part is over and now you code with your org for about three months and complete the proposed project.
- If everything went smoothly so far, you’ll get a handsome paycheck for your contribution and you’d have learnt a lot about your project, org and open source.
There are so many orgs, which one do I choose?
This is probably the single most asked question every year around this time. The answer is pretty straightforward if you’re already involved with any open source organization and want to continue work with the same org, then go for that one. If the answer to the previous question is no (which might be the case for most of you reading this post), then you need to choose a few orgs from the list of all accepted orgs. Although you will finally work with only one org, it might be a nice idea to select 1-3 orgs to which you may submit your proposals. You can shortlist the orgs based based on tags, for example if you’re familiar with C++, you can filter the orgs which have the C++ tags mentioned on Melange.
If the org list of this not out yet, you can look at the list of orgs which participated in GSoC last year. For instance, you can take a look at the list of orgs which took part in 2014 and 2013. Filter the orgs based on the tags you’re either familiar with or want to work on. Orgs which participated in previous years and took in more than a couple of students are more likely to get accepted again this year. Based on this and your favorite tags, you filter out 1-3 orgs.
After this, the next task is to go through the idea list for those orgs and decide what ideas interest you most. If you don’t fully understand the ideas, it’s completely fine and the next step will be to get your doubts cleared up by contacting the org and/or the mentor of the task (more on this in the next section).
Okay, I’ve decided an org and project idea, what do I do next?
Once you’ve decided what project idea interests you most and some parts of the description are either unclear to you or you want to clarify a few details, you should get in touch with the task mentor and the organization in general. All the orgs have a contact section on Melange which will tell you how to contact the org. Most orgs prefer communication either via IRC or mailing lists so you can get in touch with the org. You can also ping the task mentor in IRC or mail him to clarify any doubts that you might have regarding the project.
Although its not compulsory, its usually a good idea to contribute to the org before sending your proposal. In order to that, you can ask questions like “Hey I’m new here, can anyone help me get started on how to contribute.” either on IRC or the mailing lists. Since orgs get asked such questions very frequently, many of those have a ‘Getting Started’ page and if it’ll be very helpful if you find that page and follow the instructions. If you’ve any doubts don’t hesitate to ask those. Mentors are generally nice people and will help you through.
How to start contributing
Contributing to an org means either helping to fix bugs (issues), writing documentation or doing testing etc. All the orgs use an issue tracker to keep track of their issues/bugs and most of those orgs have a novice/beginner/quick-fix tag which lists tasks which are easy to fix for beginners. You can get more info on that by contacting the org. Contributing to open source is fun and if you’re not having fun, you’re doing it wrong.
Writing a good proposal
Once you’ve finalized the project idea, and have got started contributing to the org, the next and the most important step is to write a proposal. Many orgs have a application template of sorts and if your org has one, you need to follow that. Otherwise, you can start by specifying your personal information and then moving on to project description. Following are a few tips for writing your project proposal:
- Include a detailed timeline based on how you intend to complete the project.
- Make sure to list any bugs you’ve worked on and/or links to your contributions.
- Double, actually triple check for spelling mistakes.
- Don’t forget to mention your contact info.
- Last but not the least, don’t forget to update Melange with your latest proposal.
Once your proposal is ready, you can ask the task mentor (and/or the org admin) to review it before you submit it finally to Melange. Ask them if you could explain any parts of it in a better manner and follow up on their feedback. The most important part is really understanding the project idea and reflecting that in your proposal.
Some Do’s and Don’ts
Following are some miscellaneous tips for communicating with your org in a better manner:
Don’t ask to ask: Don’t hesitate to ask any questions and its much better than asking something like “Hello! I ran into an isuue, can anyone help me?” Instead you’re more likely to get a helpful answer by asking your real question instead of asking to ask your question.
Be patient and don’t spam: Once you’ve asked your question, wait for some time for someone to answer it. Its not a good idea to spam the channel again and again with the same question at short intervals.
Mentors are humans (and volunteers): After mailing a mentor, at least wait for 48 hours for them to reply. You need to understand that they are humans and most of them contribute in their volunteer time.
Use proper English language: Its really not a good idea to use SMS language while communicating on IRC or mailing lists. Also, note that excessive use of question marks is frowned upon. Although you need to be respectful, but addressing mentors as Sir/Ma'am is not such a great idea.
If you follow the steps mentioned above sincerely, you’ll have a great chance of getting selected into GSoC this year. If you have any doubts, feel free to ask those in comments below.
PS: A little background about me
I was a Google Summer of Code student with Drupal in 2014 and mentor for Drupal in Google Code-In 2014.