During Debconf16, I ran into 6 people who had been part of GSoC last year for Debian.
Brief History of Google Summer of Code
GSoC is Google Summer of Code where Google asks organizations to apply to be part of GSoC.
Debian had a total of 26 students who were part of Debian GSoC last year out of the total 1206 odd students who were selected for GSoC last year from 66 countries and 178 odd organizations.
It is one of the best ways for a student to show off his/her coding skills, make money ($5500) given in 3 installments for 3 months of work.
Now, without further ado, I posted some queries to them and they shared their view both on Debian as well as the GSoC experience. The group is Keerthana Krishnan, Deven Bansod, Chirayu Desai and Kai-Chung Yan. I had also asked Prabharan Jaminy who was part of GSoC but due to her ongoing commitments, she wasn’t able to get back to me.
I’m shortening the names for convenience –
- Keerthana Krishnan – KK
- Deven Bansod – DB
- Chirayu Desai – CD
- Kai-Chung Yan – KCY
so here goes nothing –
GSOC basics
Shirish – When or how did you come to know about GSoC?
DB – Two of my (now very close) college friends had participated (successfully) in GSoC 2014. Seeing their work and contributions to open-source motivated me to find out more and Varad Gautam [varadgautam.wordpress.com] helped me in initiating the very early introductions on the organizations’ mailing lists etc. and I finally ended up submitting two proposals to phpMyAdmin in GSoC 2015.
CD – I was a Google Code-In Grand Prize Winner, in 2013, and that is how I came to know about GSoC, through Google.
Shirish – Before GSoC did you try any other international internship programs?
DB – No, none.
CD – No, none
Shirish – What did you like about the GSoC project and how/where does it help you?
DB – First and foremost, I liked the fact that the code I wrote as a part of my GSoC project was not just a side-project for the organization (which is, by the way, the case for a majority of industry internships, at least in India) and that I was actually contributing something significant to the software.
Since a major part of the project was centered around improving the user experience, it really made me able to think from a user’s perspective which, as I had realized later, is quite different from the developer’s one. A developer would not mind as much for a single extra click, but ask a regular user to adjust to the extra click and he might end up choosing an entirely different alternative to your software.
CD – The fact that you can get into such a wide variety of work, there’s everything from apps to working on the tools which build those apps to working on compilers.
GSOC Strategy by applicants
Shirish – The list of organizations which Google will sponsor comes out in March/April every year, did any of you have a look at which past organizations made to the list the previous year/s? If yes, how did you go about it?
Shirish – 2 If you short-listed some organizations based on previous years, did you approach them earlier and tried to figure out which area/s would they be looking at?
DB – Yes. I had glanced through the list of organizations that had been selected for GSoC 2013 and GSoC 2014. These organizations generally have a well-crafted (well, in most cases) standard operating procedure (SOP) as regards to the students wishing to participate in the coming GSoC with their organization and that helps both the applicants as well as the organization.
Though I started my efforts to understand how the general development process goes on in the specific organization (like what standards do they operate on, what tools do they use, how do they accept patches etc.), I did not state that I was there only for the GSoC participation. As far as I can recount from my personal experiences, the prospective mentors are generally as helpful to a regular newbie as they are to a prospective GSoC student.
CD – I checked it to have an idea of what organizations participate and get selected, and also to see what kind of projects they have. But didn’t approach them earlier.
Shirish – If however, you waited till the list or organizations came out, how did you decide which organizations you would be applying for? There were 190 organizations this year – how or on what basis did you do your selection of projects to apply for? For instance, did the organization matter or project or programming language skills that you looked for?
DB – Generally, your own skill-set or your previous contributions is the best way to shortlist the organizations to apply to, since those are generally the ones with whom you would have best chance to get in.
CD – I looked for projects that would interest me, and picked Debian based on the Android Tools project. I looked at OS level projects, Android projects, and also general Linux utilities as that is where I felt I could work best.
Shirish – How many proposals did you send and what helped you in making the proposal?
DB – I had sent two proposals (both to phpMyAdmin). I personally feel understanding a better part of the codebase (at least of the modules that your proposal is surely going to touch) helps a lot. Also, as I stated in a previous answer, understanding the general development process in the organization may also help in framing the timeline better.
CD – Just the one. Feedback from the mentor over e-mails helped a lot in making that proposal.
Shirish – Sometimes, there is more than one student competing for the same project in which case you need to revise your proposal, did you have to do that? If yes, what changes did you make?
DB – Since phpMyAdmin had suggested to submit the proposal directly on the (then Melange’s) GSoC website, I could not see fellow competitors’ proposals as such. I just focused on writing the best proposal that I could write based on my own understanding (and discussing some aspects of specific features on the tracker or on the mailing list).
CD – 5 students applied for this project, and 3 got selected, all working independently on different parts which when added up together led to a successful project.
Kai-Chung and I had the same project.
Didn’t make any changes to my proposal due to the fact.
GSOC Lifecycle
Shirish – During the proposal stage, did you engage with the mentor? If yes, what method did you use to connect with him/er e-mail, IRC or some other way?
DB – I did ask for a few clarifications regarding some aspects of a few issues, but they were not targeted towards the mentor directly and could be answered by anyone from the community. Also, almost all of the conversations were on the public mailing list or on SourceForge’s issue tracker that phpMyAdmin was previously using.
CD – E-mail, mailing lists, IRC, all 3 :)
Shirish – Many times the student and the mentor are in different time-zones and hence figuring out a correct time to meet (via IRC) enables compromises of time on both sides, did you go through it?
DB – As I stated previously, I did not talk to the prospective mentor on IRC.
CD – Yep. We had quite the difference, around 7 hours between the mentor and one of the students, and I was somewhere in between that. IST evenings was the general meeting time.
Shirish – Share the link to the proposal that you made and if you revised it, how many times did you revise it?
DB – You can check a major portion of it at:
https://devenbansod.wordpress.com/2015/04/28/project-details-feature-request-enhancements/
CD – Here’s mine
KK – Here’s mine
The wiki indicates 4 revisions, and I did have a draft outside the wiki, so < 10 revisions either way.
Shirish – Were there any interesting challenges that you faced while completing the GSoC?
DB – I believe a project without technical challenges would not be interesting at all. I faced a lot of these which I have articulated in my weekly reports during the coding period. I can’t thank my mentor Isaac and the other developers in the community who helped me tackle these in a convincing manner.
Apart from that, I can’t recall any major challenge in the conduct of the program by Google or phpMyAdmin.
CD – Yes, trying to compile the same things (android tools such as adb, fastboot, aapt) in a different environment (android build system which has pre-built compilers, as compared to debian which just uses the standard compiler packages and thus a different version too) led to some unexpected bugs.
Advice for future GSOC Applicants
Shirish – Any ideas you think that would make GSoC better?
DB – Seems good to me overall. No complaints as such. As for organization selection, they should reserve a fixed proportion for never-participated-before organizations so that newer organizations can participate and grow.
CD – It is already such a wonderful experience, starting from getting a proposal into working with the organisation and completing it.
One thing I’m trying to do this time is starting with some GSoC sessions early on in my college, to make students aware that such a thing exist, and give them a general idea of how it works (organisations, proposal), and even open source in general.
KK – started out as a volunteer for the local IEEE student branch in my college/ Cochin area. I attended & help organize a few workshops from where I started picking up bits about programming. I had applied for GSoC and Outreachy before in 2015 and got rejected twice before I got accepted in 2016.
GSoC was very special and it has given me a lot of exposure and some confidence to me and my family about my aptitude with the technical sciences. The project I applied for in GSoC was similar to my mini project, that’s how I found it. The first time I knew nothing about applying and I read a bunch of blog posts on how to make a good pitch before I finally made it.
The key to achieving your dreams is a pragmatic approach. You should listen to your passions but also have realistic expectations and be ready to fix the parts of your plan which don’t work for you to meet your end goal. I had to work on my GSoC application in between my final semester exams/project/viva. It took a lot of effort, especially to shut out the critics in my head, my family and naysayers telling me to focus on academics.
It was a long journey of learning for me, but I wouldn’t change anything. I am very happy and grateful with how things have turned out so far.
KCY – I did not do any Debian work until the coding phase started. In fact I learned Debian packaging right after I was accepted in GSoC . But I did email Hans after I submitted my proposal on Debian Wiki.
I started to flash my phone when I got my first Android phone back in 2013, which was an i9100. I flashed CyanogenMod following its instruction and using android-tools-fastboot on Ubuntu, thanks to the team’s early work.
My advice to a potential student would be that you should contact the mentor right after the proposal is submitted in order to let the mentor know that you really care about the project, also in order to check if the mentor does it too. Before I submitted the proposal of android-tools I also contacted a mentor of another free software project, but that mentor never replied me, so I focused on applying for android-tools afterward.
I can’t think of anything I want to change if I could go back other than improving my work efficiency during the coding phase. But well, efficiency is sometimes unpredictable, and I’m satisfied with my decision of staying on the project after GSoC ended.
In the end
I hope you learned a thing or two from the experience of the GSoC 2016 winners. If you are a student and looking to apply for GSoC this year, please follow the GSoC 2017 timeline.