Google Summer of Code, Q&A

Google Summer of Code is a very prestigious programme held every year to bring student developers into open source development. Many students have a lot of queries about the programme. We have Divyanshu Mahajan (2018B3A80820P) who qualified for the Google Summer of Code 2020 answering some of the most asked questions about GSoC and how the students can ace it.

Q. When did you first year about Google Summer of Code and what motivated you to apply for it?

A: It was sometime around May 2019 when I heard the news of a senior getting selected into GSoC. Back then, I wasn't aware of the program, so I talked directly to this senior. He told me everything about the program. As I understood the nature of such open-source programs and the fact that the learning curve associated with it was steep, I decided to give it a shot next year.

Q. When did you start contributing seriously for the programme? In your opinion, how much time before should a student start preparing?

A: It was by the end of December 2019 when Google announced GSoC 2020 and its timeline. I started looking for organizations a week or two post the announcement. It took me more than two weeks to filter out the organizations and the projects I wanted to work on. And subsequently, I started contributing in late January. Generally, there’s no ideal time to start contributing. Most of the students start looking for organizations and contributing around January, while some start during March after Google announces the mentoring organizations. However, the earlier you start, the more time you have to learn new things and figure out stuff you aren’t aware of.

Q. How did you start working with the organization? Can you share some pointers on how students can efficiently work on such open source projects?

A: Once I picked up the project, I tried to familiarize myself by playing around with it. As I got used to the product/app, I looked through its documentation and contribution guidelines. It is important to know about the contribution guidelines and code of conduct as organizations expect contributors to follow their standard protocols. Afterwards, I picked up some open issues to understand the project’s codebase and to fix them. I was also in touch with the mentors and other community members to discuss my queries and know their expectations for the student they’d wish to select. First things first, take enough time to understand the project and its goals. Most new contributors directly jump on solving issues and providing meaningless patches/fixes, which often annoys the mentors and maintainers. Secondly, involve yourself in healthy and relevant discussions with the mentors and community members. Make sure you follow proper communication etiquette. Lastly, don’t treat GSoC like a competition or a contest such that you need to solve the most issues or overdo things.

Q. While contributing, did you face any difficulties with the college coursework? How did you manage both of them?

A: Things were not that difficult to manage. It was a bit hectic before midsems, as I had to deal with acads, club projects, and my GSoC project. Post midsems, since we went on a break due to CoVID, the academic workload came close to nothing, and I mostly spent my time on GSoC-related stuff and the club projects. While on campus, I utilized the breaks between lectures/classes (only the ones I attended :P) to go through the project tickets I was working on and followed up on organization discussions. My lectures would have wrapped up during the afternoon, so I spent most of the remaining time completing those project tickets, club projects, and an hour or two covering acads.

Q. How did you know which organization to choose?

A: I didn’t. I just went for shortlisting from all the available projects based on specific criteria, rather than choosing an organization first and then selecting their project. For projects, you can filter them based on a particular tech stack you like or a domain such as bioinformatics, astronomy, etc. I took the former approach as I wanted to work on a JavaScript-based project. I filtered all the JavaScript projects and prepared an initial list. Afterwards, I started going through each project, read its outline/description, and further shortlisted the ones that seemed interesting. After spending more than two weeks doing this, I picked a project. I also kept the list of other projects to switch to if I want to move from my current project in the future.

Q. How did you start contributing to their projects?

A: Before Google announced the organizations, I worked on a different project. Unfortunately, the organization mentoring that project couldn’t move to the list of selected organizations. So, I switched to another project on my list. Once I had gone through all the project details, I introduced myself to the community and got in touch with my mentor. As the project idea I picked was yet to be built by the shortlisted student and was primarily research-oriented, there were no initial code contributions. So, my work was mostly about researching, investigating, and proposing solutions covering the project’s implementation details before my selection. Apart from the research work, I also took the time to code a prototype that could solidify the idea and serve as a proof of concept. Meanwhile, I was discussing my work with my mentor, which helped in perceiving his expectations for the project, refining my mental model, and eventually expanding the project. All of these served the same purpose of code contributions, i.e., to understand the project and its goals in-depth.

Q. Once you have selected an organization, how did you approach it to let you work with them?

A: Generally, there are no restrictions on working with an open-source organization, as long as you follow their guidelines and code of conduct. Open source encourages collaboration, and so does GSoC. However, it is recommended to get in touch with the organization members and mentors before working on their project. Ensure that you have understood the project idea clearly before your first interaction. Most of the maintainers and mentors like to answer students’ queries as long as they are relevant to the project (obviously, don’t just ask to ask). So, if the first interaction involves clarifying your doubts, don’t hesitate to put those forward. You can then start contributing to the project by solving a straightforward issue and gradually picking up the tougher ones to become comfortable with the project. Also, talk to the mentors beforehand about the issue you want to fix so that they formally assign that issue to you.

Q. Are there any resources you took help from while applying to organizations? What does an ideal project proposal look like?

A: To apply for an organization, you need to submit a proposal for at least one project idea. While preparing my proposal, I looked through the “Student Guide” on the official GSoC website. It was pretty helpful as it gave insights on how a proposal should be. Besides, I consulted a few previous GSoC participants who helped a lot in refining my proposal. I also used their proposals for reference.

Yeah, so ideally, your proposal should be able to answer these four questions concisely: what, how, when, and why. “What” describes the core idea behind the project and the project itself in your own words. The “How” part is the longest of all, covering in-depth the implementation details, the tools and technologies you’ll use, and the way you’ll integrate all of that. The “When” part is the project timeline. In this, you frame the weekly goals and deliverables and the plan you’ll follow if you get selected. The “why” part is self- explanatory, i.e., your reason to work on the project and why you should be considered amongst other candidates. If your proposal can answer these four questions, you’re in a good spot. Also, please don’t treat this as a TechRe Report or some course assignment. Try to keep it clean and concise.

Q. Can you share a rough timeline from the announcement of the organizations to the result of the selection?

A: Sure! The mentoring organizations are announced sometime between late February and early March. After the announcement, you have two weeks in between and before the student application period. This period usually lasts two weeks and is utilized to prepare a proposal. You also need to submit your proposals by the end of this period. The selected students' results are announced a month later, which also marks the beginning of community bonding period.

Q. How important does the role of the mentor play?

A: Your mentor is probably the most important person in your GSoC journey. He/she has a major stake in deciding your selection because they’re the ones to be paired with you throughout the program. Having a good bonding with your mentor is important and is the key to successful participation. Mentors are also important because they have much more experienced and will teach you a lot of stuff you probably didn’t know, all of that while you work on your project. They’ll review your work, give constructive feedback, and suggestions to overcome challenges you’ll face during the program. There’s more to it, but having someone to mentor you is invaluable in any scenario.

Q. What was your experience while working on the project? You must be having PS-1 along with your GSoC too. How did you manage to work on both?

A: All the work I did before GSoC wasn’t that challenging or involved a steep learning curve. GSoC was quite fun, exciting, challenging, and more importantly, a phase of growth. I picked up a new JavaScript framework in a month, delivered a whole new project on top of it, created a good impact by solving some of the core accessibility challenges, got to know my amazing mentor, and learned a lot (both technical and non- technical stuff) from him. Most of my PS-1 work got finished before my coding period began. Moreover, my PS-1 wasn’t hectic, as I had put all the lite stations on top of my preference list. So it was easy to manage both.

Q. What do you think are the benefits of such a programme? Any advice you would give out to the students?

A: Apart from the incentives , you’ll get mentorship from an experienced person, and you’ll learn a lot. Almost every GSoC project is used by some people, so the work you do will impact them directly. This is an excellent opportunity to have, as most of the stuff we build as students rarely gets used by someone. Other than that, you’ll get to network with people having diverse backgrounds and similar interests and make meaningful connections. There’s a lot that we have covered, and there’s a lot more on the internet. However, if you manage to find an organization/project that inspires you to work, please continue to work on it, irrespective of whether you get selected.

For further queries you can reach Divyanshu at: [email protected]