What Is GSoC?
Google Summer of Code is program to promote open-source development. It is organized by Google every summer since last decade. It runs for 12 weeks from mid May to Mid August. Students contribute to open-source repositories and get paid by Google in return. It’s a great way to spend summer vacation.
It is sort of like a remote internship where you get to work on a project with an open source organization over a period of three months and Google pays you for the same.
You must be a student and you have to be 18 years old for participating in GSOC ! That’s it. No other criteria. Country, Qualification – no criteria. If you have a student ID card, you are eligible.
You can apply for GSoC during any year of college. There are a lot of projects that are offered by various open source organizations and you can choose to work for any of them or you also have the flexibility to propose your own projects. You would have to prepare a proposal for the project you would like to work detailing how would you proceed with working on the project. You can do that in your freshman year if you have the required skills to convince an organization that you are suitable for the project.
How It Works?
Students contact the mentor organizations they want to work with and write up a project proposal for the summer. If accepted, students spend a month integrating with their organizations prior to the start of coding. Students then have three months to code, meeting the deadlines agreed upon with their mentors.
Open source projects apply to be mentor organizations. Once accepted, organizations discuss possible ideas with students and then decide on the proposals they wish to mentor for the summer. They provide mentors to help guide each student through the program.
Existing contributors with the organizations can choose to mentor a student project. Mentors and students work together to determine appropriate milestones and requirements for the summer. Mentor interaction is a vital part of the program.
This is not a program where you fill up a form and get selected.
- First, the interested open-source organizations apply. They are shortlisted by Google. The students will code for these organizations and the organization has to mentor the student. In GSoC 2016, around 178 organizations were selected including the big organizations like Mozilla, KDE, etc. The list of organizations selected is announced around mid-February.
- Every Organization has an Idea’s Page or a Wiki Page in which they publish the list of possible projects. Some even have a to-do list. Students can browse through organizations and check out their projects. If they like any project, they can contact the organization or the mentor itself via the organization’s Mailing List. One can come up with his/her own project, which is even better.
More On That
- Generally, each organization wants the student to show some background in the area of the project (fast learning abilities + keen interest is fine too), and familiarity with tools like version control system (GitHub is the most popular). One has to demonstrate his/her skills which can be achieved by fixing some bugs. Generally there will be a list of known bugs/issues in a repository and some of them are really simple to fix. One can even try to find, report and then fix a new bug. One has to install that particular repository on their system, get comfortable with it and understand (at least the basics) what’s going on. Past Open-Source Experience is a big plus although not necessary.
- Student application period is between 1st to 3rd week of March. Once the student has demonstrated his/her abilities, they have to apply via Melange. They have to write a project proposal. This proposal should outline the project objectives, technical/implementation details, timeline and end deliveries. One can ask the concerned mentor to review his/her proposal before submitting. One student can submit up to 5 project proposals. However, at max only 1 project is assigned to each student.
- On an average one has to devote at least 35 to 40 hrs each week during the summer for their GSoC Project.
Things You Learn
- Using developer tools to improve your productivity and reducing errors.
- Working on large codebases.
- Working with version control system.
- Writing readable and future-proof code.
- Writing tests for your code using standard testing frameworks.
- Debugging large codes, identifying the cause and fixing it. You will learn about debugging tools.
- Developer Workflow – The iterative process of pick an issue -> code -> commit -> review -> submit.
- The open source culture.
- The application process itself will teach you how problems are identified in software engineering world and how you make proposals to solve them in an efficient and feasible way.
- You will end up writing thousands of lines of code in a few months and your project will probably be the largest one that you complete as an undergrad student.
- In Google Summer of Code 2017, 6600 USD will given to those who successfully complete their project.
- Learning a lot – Working with large code bases, debugging, optimizing, testing profiling, tuning, fixing bugs, etc. You can learn a lot.
- Work from Home – No office. No Attendance. No reporting. Work from anywhere, anytime.
- Everyone who successfully completes Google Summer of Code gets a referral from Google. You can use that referral anytime in the future. Provided you have a decent resume, apply for relevant positions and use that referral, you pretty much have a guaranteed interview.
Even if your proposal is declined, you can still continue contribute to the repository. You will miss on the money, but it’s fine. You will still learn a lot!