Google Summer of Code is probably the most prestigious internship that a college student can get into these days. Over millions of students over the world apply and only a thousand are selected. You also get the decent stipend which varies according to PPP (for Indian students it is $3000). Fortunately, I have been given the wonderful opportunity to work with the Wikimedia Foundation under the umbrella of GSoC 2019.
First of all, I want to thank my mentors — Yaron Koren, Erik Biegert and Yashdeep Thorat for giving me the opportunity to work with them. I also want to thank my parents and my brother who always supported me while I was preparing for the same. I also want to thank my senior Mohit Mohta, who was also a GSoC student developer in 2017, who introduced me to the Wikimedia Foundation and last but not least, my senior Suryaveer Singh who helped me whenever I got stuck with something.
I started my preparations right from December, just after the fifth semester, i.e, even before the list of accepted organizations was announced. In my opinion, starting early definitely does give you a decisive advantage simply because you have more time to get accustomed to the organization guidelines. Folks have quite a mixed bag of opinion regarding whether it is good to start contributing to a project even before the organization has been accepted for GSoC. This mixed bag is typically a risk-versus-return scenario, where some students ‘take the risk’ and get started with a project early because it’s interesting, while many others feel that they can’t risk their efforts. I strongly believe that nothing in open-source (or even life, for that matter) ever goes in vain.
There are a number of project ideas open for Google Summer of Code, it’s really important to single down on the project idea that’d be most apt and interesting to you. It’s generally good to take enough time to look at the projects and singling down based on your preferences.
I had enough time to go through previous year projects and take an educated guess that they’ll get accepted this year as well. My preferences this year was very clear — I definitely wanted a web-dev project.
Now comes the important step - to actually go out and have a conversation. Get in touch with the mentors and the organization. Most of the organizations have a medium such as Mailing list, IRC, Slack, Gitter, Zulip Chat, etc. where all communications take place. You should feel free to introduce yourself, express your ideas, and discuss with other members. It’s also the best place to resolve any doubts/ambiguity regarding the project, but make sure that you’ve done your efforts in solving the issue on your own. It’s good to stay active on these mediums.
Another important aspect is your contribution to the code base. Go through the project repository, set up the repository locally and try fixing any of the issues mentioned in the issue tracker of the repository. This reveals your familiarity and your keen interest in the project and depicts how consistently you handle the Pull Request Reviews. I was also able to get 3 Pull Requests merged by the proposal period, as I started early.
The last and the most neglected step. It is good that you are familiar with the code base but it’s your proposal that portrays the vision you have for the project and how you plan to implement it. If you are able to clearly write down how you are going to do the project within the given limited time frame, that will definitely give you some plus points. Usually, organizations provide a template, and it’s preferred to follow the template. And of course, include as many code snippets as possible, along with a detailed and feasible weekly timeline schedule.
Now you may ask the mentors to give reviews on your proposal. The best way is to submit a little early on the GSoC website so that the project mentors can give positive feedback on the proposal. It’s not required to blindly accept the changes suggested in the review. But if you’re not changing it, at least ensure that you discuss with your mentor(s), regarding why you feel that your initial draft method might be better than the one suggested in the review. In short, explore as many alternatives and express the thoughts that went in choosing a specific alternative over others. More detailed the proposal, the better your chances will be.