Writing your Google Summer of Code application

The basics

Here are the main tips to help you in writing your GSoC application (thanks to the folks at Apertium!)

1. Be realistic

We’re more likely to accept ideas which are realistic than ones which are «way out there». But if you have a «way out there» idea, don’t panic! We’re still interested, but we’ll try to find a subset of it which is achievable in the time scale available. Time flies, project tend to overshoot or end up being more complicated that thought, so try to err on the safe side: this is a sign of maturity.

2. Have a plan

Three months may seem like a long time, but it isn’t. Show you have a definite plan with dates and deliverables, split into weeks is probably best. Don’t forget to leave time for getting familiar with the platform (this should be ideally before, or during the community bonding period), and for documentation. If you know of any breaks or absences beforehand, be upfront about them and plan around them.

3. Get in contact ASAP!

We get a lot of proposals: some good, most bad. Get in contact with your potential mentor as soon as possible by sending your proposal via the GSoC interface, and ask for feedback: it doesn’t need to be pass-or-fail, particularly if we like your initial idea. Be responsive to feedback. Refine your application based on that feedback. If the mentors remember you, your chances of being picked are higher.

4. Read the ideas page. Please do.

If you find yourself asking do you have any XYZ projects… – you didn’t read the ideas page and that will make us sad. So read it before asking questions! But if you have another idea, that’s great and we want to hear all about it. Simply show that you’re proactive and you will be in the top 10% already.

More tips

We’re not saying that following the advice below will automatically get you a mentor, but going through it will give you a pretty good chance!

Join our Slack channel

There’s a link to get an invite in the repositories. We don’t post it here so you are forced to read the contributing.md file. Once you are in the #GSoC channel, even if you’re idling or don’t say anything, you’ll discover more about how Kiwix works.

Create a GitHub account

But – you should already have one (or SourceForge). We want to look into previous works you’ve done, even if it’s a little game for your sister, it will tell us how you think.

Become familiar with Kiwix

First, install Kiwix. Download a ZIM file or two. Play with it, and see what you could improve. You typically want language data from GitHub, core tools from our repo.

The Kiwix culture

When you think of Kiwix, think Wikipedia (Be bold!) or think Nike (Just Do It!). Preferably, both.

Rule 1: Ask questions! Not generic ones, but specific ones, on the repo (so we know what they pertain to).

Rule 2: No questions are stupid. We have all been new to Kiwix once, we have all needed to ask questions. Asking them is proof to us that you are serious. Even better: explain why you ask this question. A good summary shows us that you have done some thinking and want to confront an actual problem.

If you think you know the problem better than the mentor does, it could be that you have misunderstood it. But then again you could be smarter: be bold and ask why things are this way and not <insert smarter idea you had>.

One more thing

While your code is compiling, look through the GsoC student guide from FLOSS manuals.


Application template

Your application should contain the following information:

  • Your name
  • Your e-mail address (and other information that may be useful to contact you, e.g. your IRC/GitHub handle)
  • Some information about yourself like:
    • Have you participated in Google Summer of Code in the past?
    • Have you participated in Google Code-in in the past?
    • Do you have any prior open source experience?
    • Do you currently have any other summer commitments?
    • How many hours are you able to devote to your chosen project each week?
    • Do you have any experience using source control e.g. Git?
    • Have you ever used IRC?

Then write a proposal, including

  • A title (basically a few words to tell us what you plan to achieve)
  • A brief description of the aims of the project
  • Reasons why Google and KIWIX should sponsor it (How useful will it be to our end users? Why do you think you can achieve this?)
  • A summary of how you would intend to complete this project
  • A list of any potential challenges you can see at this point and how you would go about overcoming them
  • Is there any further work that could be done after GSoC to improve on what you will have done?
  • How have you decided to communicate with your mentors and how often?

Finally, add a detailed work plan (including, if possible, a schedule with milestones and deliverables):

  • Week 1: milestone 1
  • Week 2: milestone 2 and 3
  • Week 3: milestone 4
  • Week 4: milestone 4 1/2 (it’s okay to be approximate as long as you show understanding of your challenges)
  • Project completed!

Include time needed to think, to program, to document and to disseminate. Make sure to factor in time taken to run any experiments/evaluations and write them up in your work plan.

List any non-Summer-of-Code plans you have for the Summer, especially employment, if you are applying for internships, and class-taking or vacations. Be specific about schedules and time commitments. we would like to be sure you have at least 30 free hours a week to develop for our project.

List your skills and give evidence of your qualifications. Tell us what is your current field of study, major, etc. Convince us that you can do the work. Any other information that you think would be beneficial to your application? Don’t be shy about it!