What makes a good application

A good application must show the following points:

  • The project is valuable for our community.
  • There is an convincing implementation strategy.
  • The project can be realistically completed during a single GSoC.
  • You have the skillset to implement the proposed project.

and

  • You are – independently of the project – technically excellent and a pleasure to interact with.

Even though we are looking for excellent students, this must not be confused with the need to be expert on what you propose. GSoC is a way for students to learn and develop – technically and as part of a developer community. Hence you do not need to know everything ahead of time. You just need to convince us that you are a person we are excited to support in her or his development.

Before the actual application

Learn about our project

Get to know the project!

At the very least checkout our source code, compile it, and run a simple example.

Look into the source code of our project, read one or two papers related to our project, follow our mailing lists. Just make yourself comfortable and get a general idea of what is going on.

A great way to get to know a project is to write code – as early as possible.

  • Ask us for a simple bug which you could fix, get through code reviews, and commit!

Contact the developer community early

Getting in touch early with the community of the organization you plan to apply for is very important!

What is early? The earlier the better! The best students contact us often up to three months before the application deadline, four weeks are good, less than a week is already very tight.

The communities are the ones who decide if your application will be accepted and they know best what they expect from a good application. It is in their best interest to receive outstanding applications that address problems they care about. Hence, they are generally very motivated to give feedback and comments on your project as well as the actual application. In fact, they are glad to guide you through the entire application process.

  • Write an email that just introduces you as a person and states your intend to apply for a GSoC project with us!

Develop your project with the community and identify your mentor

Independently if you choose your own project or take one of the projects suggested by us. Develop the actual project with the community!

It is important that the project you suggest is valueable to the community and that the community is supportive of how you plan to implement your project. It is your job to learn what the community needs and to design a development agenda that matches the expectations of the community. To fulfill this job, it is essential for you to closely interact with the community.

While developing in your project proposal it often already becomes clear which community members are best suited to mentor your proposal. Having identified a mentor early on who has a very good idea of your proposal, makes your proposal especially strong.

By interacting with the community you can also convince us that it is a pleasure to work with you.

  • Discuss your project ideas publicly
  • Try to identify a mentor
  • Show that technical disucssions with you are a pleasure

Get your hands dirty

Your proposal should convince us that what you suggest is technically achievable. To be able to convince us, you first need to convince yourself.

Ask yourself if you can

  • collect test cases which should be improved by your work
  • get estimates (or even bounds) on achievable performance or coverage
  • collect any kind of relevent statistics
  • create mockups of what you would like to achieve
  • identify code that likely needs to be modified

and share the results with us.

Can you maybe even create proof-of-concept codes for some important pieces?

  • Collect statistics, examples, and code extracts

The application

We prepared a Project Proposal Template that you should start with. Delete all italic text and fill in your own. When you think your proposal is ready, and before submitting the final version to Google, send it to us for review.

Using the template helps us to compare proposals from different people. It also shows us that gave your project a though before submitting it.

During the project

You should schedule a regular weekly conference call (by Hangouts, Skype, SIP, or whatever) with your mentor(s). Some things are better to discuss personally than by email, and there is no delay until you get a response.

Create a live editing document (e.g. Google Docs) and give at least view and commenting permissions to you mentor(s). Then, copy the timeline and deliverable tables from your proposal over. Whenever you finish a task, change the color of the item to green. This is so you and your mentor can observe your progress.

Also use that document as a diary. Finish every day with what you accomplished that day, what the problems are and what you need to work on the next day.