Even though I just got accepted for the Google Summer of Code 2011 I want to tell you about my experience regarding the application process.
Each year a lot of students are applying for the Google Summer of Code. To be one of the lucky students that are accepted you should follow a few general rules (and a few that I’m making up).
#Study Read the GSoC FAQ and the GSoC student guide. Both sources will provide you with invaluable information that is crucial to being accepted. I won’t list any advice that can be found in these resources.
#Choosing an organization Carefully chose your organization. There are big differences in how the organizations are going to select students. Some organizations, e.g. Mozilla or Django, are expecting you to fix a bug before applying. You can assume that your chances will be significantly lower than the chances of your fellow students if you don’t fix a bug, write documentation or participate in another way. There are also organizations which don’t require this, e.g. universities. You can use this for your advantage when you know that you won’t be able to spend a significant amount of time before the actual GSoC coding starts.
#State impediments Every project has challenges - some require you to use a technology that you don’t know, while others are positioned in a domain (think business domain) which you haven’t come in contact with (yet). Make sure that you state these difficulties, how you want to solve them and plan additional time for removing impediments. This will tell the organization that you actually spend some time thinking about the project. For example my GSoC project requires me to write a JavaScript library for the visualization of interactive reaction graphs. While I don’t know anything about biophysics, I have a strong visualization background. I stated this in my application and made sure that this information can also be seen when looking at the timeline (see GSoC student guide).
#Share your ideas With sharing I don’t mean to share your ideas on a public mailing list but instead state how you are going to tackle the project in your application. You might want to create some UML diagrams or architecture diagrams which illustrate your ideas. I created a very generic class diagrams for graph structures which already incorporated some domain requirements and an architecture diagrams that stressed technologies and frameworks that I’m planning to use.
I hope this article gives you some good ideas and I wish you all the best of luck for the next GSoC period!