Google Summer of Code is probably the most prestigious internship that a college undergrad can get into these days. Millions of students over the world apply and only a thousand are selected. I too wanted to give it a shot.
By the end of February this year (26th to be exact), we had the organizations list for GSoC. I was not confident in my abilities so I didn't want to send in a proposal. But I thought that if somehow my proposal got selected, my life will undergo a big change. I knew a guy who had had 2 successful GSoCs and he was flying towards a great career. So at last I pulled up the courage to work on sending a proposal for GSoC. This all happened as late as 20th March. I only had 6 days to send the proposal. So I started looking through the list of organizations and FOSSASIA's project sparkled my eye. I went in and checked that it was a Python project. As I was quite familiar in Python, I decided to give this project a try. I downloaded the project and after 4 hours of hard (hair-pulling) work, I was able to run it. I ran the system live, found some bugs and sent patches for them.
After I got comfortable with the project, I decided to submit a proposal for it. There were around 10 other guys working on that project and were probably trying for GSoC so my chances looked pretty thin. But I still wrote the proposal. The first draft took me around 24 hours to prepare. (non-stop, not joking)
After that I sent the proposal and prayed for the best. Infact I had very low hopes that I would get selected. 26th of April was the D-Day. I was sitting on my laptop and refreshing the page continuously to see the result. At one time, the page changed and there was a prompt "Avi, you have to fill a tax form". This was the moment I realized that the impossible might have happened. I checked clearly and yes, I was selected.
Coding period began on 26th May. Infact we had to do some coding before that. I was in the REST API team and I had to work in the backend part of the application. I started the GSoC by starting to learn Flask. Then I learned other things like Flask-restplus and started to work on the project. Every day at 9 am in the morning we were required to submit a scrum consisting of all the activities we did yesterday and everything that we planned to do today. I had to send scrums continuously from 27th Apr to 26th August and Sunday was not off, so this daily ritual got somewhat frustrating by the end of the program. My daily routine comprised of waking up at 830 am and then working on the daily scrum. Then I would watch One Piece or start doing the day's work. By the end of the day, I would try to do the work I had planned for today and then go to bed by 12.
I followed almost the same routine for 3 months so this got a bit boring. But the midterm evaluations came on 27th June and I was paid half of the stipend sum. This boosted my spirits and I was again, back to committing. There were times when I ran into issues but generally they were not godly impossible and I was able to solve them within a day. I was learning and trying new things every day. Among the new things that I learned, I can confidently include Docker, Flask, REST API design, Deployments, Writing modular code, Unit testing, Background task queues (Celery) etc.
Mario and Justin, who were mentors for the project showed me how to successfully manage a project being developed by a remote team consisting of no less than 6 members. It was a great experience. It was for the first time that I had really made a software in teams. I believe this skill and this experience will be highly essential for my career.
I did all the tasks assigned to me successfully and I guess I was one of the favorites of our mentor. (shameless self-appreciation) So I was pretty sure that I would qualify the program. The result came on 30th Aug and yay, I had passed. Now officially I had a Google tag on my name. This was so awesome, I updated my profiles on social networking sites showcasing my summer achievement. My name was also displayed on college's website and it is still on display now. That was just great. Before GSoC, I was nothing more a tech lover who had taken a bad decision and so had to be content with a new college like IIITV, but now as I was officially a Google Intern; everyone knew that I was onto something and that everything will be alright.
I will like to dedicate this GSoC to my parents who were very supportive when I told them I am going to try getting a Google Internship. They would call me many times a day and ask me how my progress was going. So once I got selected for GSoC, I called them in the midnight despite that it would disturb their sleep. Interestingly, they didn't know the stipend attached to GSoC and so when I first casually told them about it (on Whatsapp), they became text-less (pun intended). My GSoC experience was great, I was at my home the whole time of the coding period and it was so memorable. I will try GSoC again, probably in some other organization and try to keep the pocket money coming.
In the end, I would like to suggest every student reading this to attempt GSoC atleast once. It doesn't matter if you are a ninja developer or not, just try looking into the projects list and you will find something interesting. Writing a good proposal is an art in itself (Remember I took 24 hrs to write a 10 page document). And if you get selected, working in teams and writing maintainable, testable and clean code will be a great habit you will inculcate.
First published in Cynosure, IIITV's annual magazine