5 Tips to get your Google
Summer of Code proposal accepted
I'm talking mainly about the GCC project, but the tips are general enough to be good for any other project.
Golden rule : "Start as early as possible!". The
start working on your proposal the higher is your chance to get accepted.
Focus on quality : you should
focus on a few number of applications. A big number of applications
will decrease the quality of your work. In my case I had a clear idea
of what I wanted to do so I worked on only one proposal.
Having an outstanding proposal is extremely important.
Get involved in the project :
Subscribe to the mailing list, ask and answer questions,
- It’s a good idea to attend weekly phone calls or to
the IRC channel in case the project does have one (here is a link for
the GCC/Graphite weekly
phone call for example).
Read any introductory documentation and get familiar with the source
code of the project and the coding style,
Introduce yourself to the community,
Add simple features to the project, fix simple bugs and do some
Send some patches and get feedback, this is important for two reasons :
If you haven’t worked on the project before, this early-hacking will help you
get a better idea on the internal code and thus will help you
evaluate better the time needed for each step in your work,
By doing this early-hacking, it’s like you are saying :"Hey, I can do
it! My patch is the proof.”,
- Your code must be in accordance with the project coding style,
make sure that
you read all the coding style standards before you submit your
first patch. Sebastian POP has worked on a handy script to help you
check your code (if you will work on GCC).
Discuss your idea :
Is your idea relevant to the project ? how do you plan to work on it ?
what are the milestones ?
- Get feedback about your idea, this feedback is crucial
application, the project developers can help you adjust the required
time for each milestone and whether you can do the whole work during
the Google summer of code or not, sometimes students are very
Discuss some technical details, how will you test your application ?
how can you use the project test suite to test your work ? do you have
to write your own tests ?
- Establish priorities, what should be delivered by the
end of GSoC
and what is optional ? Make sure that you can achieve the goals you
set. It’s better to write a small but reliable, easy-to-read and well
documented code than to write a huge buggy, non-readable code. Quality
Discussing your idea is a crucial step before you write your proposal.
Write your proposal :
Describe precisely your idea :
The idea itself,
What are the benefits for the project ? why is it important ?
Technical details : this shows that you have a clear idea about what
you want to do,
Describe the possible problems that you may encounter and how you plan
to solve them ?
Include a detailed schedule of your work: when will you do what ?
A CV-like section :
Showing that you have already worked on a similar project helps a lot.
- Beside your “good” CV, it would be really nice to
show that you are
familiar with the project, that you have already contributed some
patches, and that you are ready to be productive.
of GCC GSoC proposals
Here are some examples of accepted proposals for GCC project :
My own project proposal (accepted in GSOC’10) : PDF.
took me about one month to make the idea "clean" and to write the
proposal! I had to discuss a lot of details with Sebastian POP (from
AMD), Tobias Grosser (from Passau university, Germany) and Albert Cohen
The proposal of Lee Feng (accepted in GSOC’09) : PDF
Other examples of accepted proposals for Nmap
The proposal of David Fifield (accepted in GSOC'07) : Web page
If you want to translate these
tips so that you
can help the students of your country, please send me the link of the
tranlated page and a link to your home page so that I can add them
I want to thank Brendan and Sergej for their feedback.
If you do it and get to the Google
code, let me know about your story, so that I can include it as a
success story. Please let me know if you have any other comment.
Email: riyadh.baghdadi [AT] inria.fr