You are on page 1of 10

DECODING

GOOGLE
SUMMER
OF
CODE

TOPTALENT.IN

Index
1. What is GSoC?

2. Selection Process

3. Project Proposal

4. GSoC Experience 1

5. GSoC Experience 2

6. Sample Proposals

What is
GSoC?

How Google Summer of Code Works

Google Summer of Code is a global program that offers student


developers stipends to write code for various open source
software projects. They 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
7,500 successful student participants from 97 countries and over
7,000 mentors from over 100 countries worldwide to produce over
50 million lines of code.
Through Google Summer of Code, accepted student applicants
are paired with a mentor or mentors from the participating
projects, thus gaining exposure to real-world software
development scenarios and the opportunity for employment in
areas related to their academic pursuits.
In turn, the participating projects are able to more easily identify
and bring in new developers. Best of all, more source code is
created and released for the use and benefit of all.

Selection
Process

How To Get Selected In GSoC


First of all, you should understand how Open Source
Software(OSS) works and how these OSS organisations
operate.Understanding correctly the GSoC program itself will go a
long way in ensuring that you get selected and do well in the program
as well.
Step 1.
Once you understand the in and out of the world of Open Source,
start with the list of accepted organisations in the past years and pick
one of them. The way you choose an organisation depends on a lot of
factors. e.g.
- Products/services that they build
- Projects that they are working on
- Programming languages they used to code
- Other tools, technologies and platforms they use for their products
Step 2.
Having selected an organisation, your next step would be to contact
the organisation telling them about yourself. Ways to contact the
organisations: Mailing lists, IRC etc. You will find this information from
their pages on the GSoC website.
Step 3.
Now that you have inputs from the developers of the organisation, you
can get started with getting yourself familiar with the codebase. These
applications/products usually have huge codebases and making
sense out of it may be pretty daunting at first.

Step 4.
Provided you manage to solve the bug or develop that feature, the
next step will be to commit your code to the Trunk/Central Repository.
Enter Version Control Systems(VCS) - go and learn the one your
organisation uses to maintain code repositories and track
contributions. The most common ones are Git, Mercurial, SVN etc.

Selection
Process

How To Get Selected In GSoC


Step 5.
Next is the application period. As soon as Google announces the list
of the accepted organisations, start looking for the prospective project
ideas. Though Google allows you to submit your own original ideas as
well its better to choose from the list of the ideas provided by the
organisation itself as it shows the importance of that idea to that
organisation. However, if the idea is truly meaningful and has a
feasible implementation plan, there have been instances where
original ideas have been accepted as well.
Step 6.
Now, once you have zeroed in on a project idea, start discussing the
ideas in detail with the mentors(prospective) and ask relevant
questions.You can even code a small part of the project, by doing that
you really improve your chances; as you gain the confidence of other
developers and mentors. Start writing the proposal as early as
possible.
The main idea behind having a ten-day window for the application
period is to let students and mentors discuss the ideas in as much
depth as possible,make sure that before submitting the proposal, you
get your proposal reviewedby your mentors as much as possible,
Though there is no particular way of writing a proposal (every
organisation has its own template), the main ingredients of a good
proposal are that it should address two kinds of audiences - one
which is completely familiar with the technical details of the
project(that would be your mentors and organisation devs) and the
second one is a neutral not-so-technical audience which is able to
understand the deliverables of the project(in most cases that would be
the user base).

Project
Proposal

Creating a Project Proposal


Introduction: Every software project should solve a problem. Before
offering the solution (your Google Summer of Code project), you
should first define the problem. Whats the current state of things?
Whats the issue you wish to solve and why? Then you should
conclude with a sentence or two about your solution. This is
somewhat like an elevator pitch.
Project goals: This section should again be short and to the point,
and it might be a good idea to format it like a list. You should propose
a clear list of deliverables, explaining exactly what you promise to do
and what you do not plan to do. Future developments can be
mentioned, but your promise for the three months of Google Summer
of Code term is what counts.
Implementation: This section can be longer and more detailed. You
should describe what you plan to do as a solution for the problem you
defined earlier. You dont need to provide a lot of technical details, but
you do need to show that you understand the technology and illustrate
key technical elements of your proposed solution in reasonable detail.
Timeline: This section is easily overlooked, yet its arguably more
important than the previous section. With the timeline you show that
you understand the problem, have a solution, and that you have
also broken it down into manageable bits and are have an actual plan
on how to approach it. With this section you set expectations, so dont
make promises you cant keep. A modest, realistic and detailed
timeline is much better than a timeline that promises to move
mountains. Mentors can spot unrealistic timelines.

About me: If youre done with the other sections this will be a piece of
cake. Just put down your contact information and write a few
sentences about you and why you think youre the best for this job.
Its ok to brag a little

GSoC
Experience

GSoC Experience - I
Janani Padmanabhan shares her GSoC experience.
1. Can you describe the complete selection process?
Janani: The selection process for Google Summer of Code is a pretty
straight-forward one. Once the list of participating open source
organizations is out, we have to shortlist the organizations whose
purpose best matches with our interests, look into their functions and
source-codes, contact their active members and most importantly
come up with a project that is in line with their aim and of interest to
the active contributors. We then submit a detailed proposal which the
organization reviews and then proceeds to select the projects that are
of use to it. My detailed proposal can be viewed here.
2. What project are you working on currently?
Janani: My project is with SciPy, a Python package commonly used
for mathematical aspects of scientific computing applications. I aim to
improve the speed of spherical harmonic function, develop ellipsoidal
harmonic functions and to debug hyper-geometric function.
3. How much preparation did you put into this opportunity?
Janani: I took my own time to get acquainted with the mailing culture
and the code base of SciPy. It took 2 months to get acquainted with
the organizations, to understand the direction of its development and
also to learn and familiarize myself with version control systems like
git. Then my focus was to develop the proposal and refine it based on
the inputs from the prospective mentors and other active members.

4. Whats your advice to others looking for a similar opportunity?


Janani: Basically, we need interest and perseverance to make it
through. Open source coding, documentation and mailing etiquette is
not something we have in our formal curriculum but it is definitely a
window to the actual coding world out there. It also allows us to meet
some amazing people across the globe. So, GSoC or not, I would
advise all the Computer Science students to give it a try.

GSoC
Experience

GSoC Experience - II
Dhananjay Sathe shares his GSoC experience.
How did you decide on your project and what prompted this
decision?
I have been an avid linux user and FOSS enthusiast since around
2003 when I first got Linux to boot up on my PC. Using it as a primary
OS made me familiar to all the communities, software and norms
involved in this kind of development.
It also made me aware of what problems one faces and what new
stuff could be done. I had this habit, perhaps out of frustration with
open source software back in those days, if my app crashed or lacked
some functionality I would try to debug it or try and add in the new
feature. Samba is a great and powerful tool to have but unfortunately
it has a 8500 line man page and can be quite intimidating to new
users. I found this a major issue in people around me on campus and
I thought samba Gtk was a great way to work on solving that issue. Of
course the required background knowledge of Gtk, python and a
decent idea of what samba was and how it works were the final things
that culminated in my app to Samba.org
What are the benefits of getting into GSoC and how does it help
further while applying for a job?
In one word HUGE! If done right, it is perhaps one of the worlds best
experiences for aspiring developers. It exposes you to some of the
best developers on the planet. You learn a lot more than you can think
possible. You get to deal with people from multiple time zones
and ideologies. You learn about code development practices, version
control, communication, the code base itself and numerous other
minor but very important skills required in the real world but
completely missing from the scope of formal academics.
The benefits show in you, you have much better ideas, practices and
experience than most of your contemporaries.

GSoC
Experience

GSoC Experience - II
Also the folks hiring you realize the value of it all. It gets much simpler
to get involved in new open source projects and further your passion
and skillset. You develop a ton of contacts and gain access to
information and opportunities you otherwise wouldnt know about
.Last but not the least, its a huge brownie point to have something
concerned with Google and Open Source on your CV.
How should one prepare if they want to land a GSoC project?
How was your journey and whats next?
Follow your passion for software development, learn something new
every week, hack it. The last point is most essential. People often try
reading books and learning a new language or toolkit for the sake of
it. Dont do that, learn the bare basics, get hold of the source, hack it
up and learn as you move ahead. Google has a great search engine
and project wikis have a goldmine of information, make the most of it.
Its never too late to start, but of course the earlier the better.
I had a blast during my two Summer of Code projects, it was great fun
and a lot of learning too. I gained a LOT from it. I will now be working
on the next generation of the internet and robotics cloud robotics at
ETH Zurich for my bachelors thesis on some exciting stuff with the
open source cloud engine. Its been one heck of a journey.

ALL THE BEST!

Sample Proposals
http://goo.gl/B0oEup

For more E-Books & Jobs logon to


www.TopTalent.in

You might also like