Dhairya Jain – Google Summer of Code

Hi. I’m Dhairya Jain, a (to-be) fourth-year undergraduate pursuing a bachelor’s degree in Economics at IIT Bombay. I like to code, sing, and explore unchartered territories :p. Warning: I’m an “amazing” writer so excuse me for the mistakes!

A (quick) detour: I’ve been involved with SARC for most of my time in the institute, apart from lying on bed and watching web-series and yeah, if you think you’ve heard my name somewhere then it could be from one of those “Yearbook deadline extended” mails or maybe you have watched Aspirants already😂. So, Let’s get started. This blog encompasses the following things:-

A. Pre-Intern Time — Why you should try for GSoC, Why I went for GSOC, and what challenges I faced after deciding to pursue it.

B. Getting through the process — How I chose organization (s) to work, and my whole 2-month journey

C. My experiences so far

Pre-Intern Time

Presently I’m contributing at Google Summer of Code (yes in the summers following my third year and not a lot of people do that, they usually get a good intern before😏). GSoC is a program started by Google for promoting open-source projects among students. Honestly, I was mentally exhausted, emotionally drained and devoid of confidence after getting rejected the whole internship season, and the “fun” part was that I had no feedback on what went wrong in the interviews.

Guess what, I have flaws. What are they? Oh, I don’t know. I sing in the shower. Sometimes I spend too much time procrastinating. Occasionally I’ll fail some tests and interviews. So sue me.😛

So the only reason that I decided to pursue GSoC was that I wanted to prove it to myself. A major highlight about GSoC is that one’s selection depends a lot more on the efforts put into the proposal, communication with the mentors, and not much on resume or interview skills (an area I lacked back then); so it felt like a risk (the fear of failing again) worth taking. In short, if you want to explore open source or are worried about your CPI or if you happen to be in my situation, you can apply for GSoC, at least I did and I think it was one of the best things I did to myself. This is, in my opinion, one of the best experiences you can have. You get to learn from the best minds of the industry; you contribute to open-source projects which are highly respected in the industry. Respected because you won’t be working for, but instead contributing to any organization, and you do your thing without being a “corporate slave” if that matters to someone. If this isn’t enough motivation then there’s more to it; you get paid too (andha paisa 😜) and you get to write in one of these insight summer blogs(unpaid ad😉). Most importantly, you learn to learn, which is why any open-source contributions will stand out (more than some random internship) on your resume irrespective of your selection in GSoC. If you commit to the process, you’ll definitely learn so much more about software development; it doesn’t matter if you’re selected or not you’ll still have new skills/ projects to add to your resume.

I believe that all of this should be enough to motivate you to get started with GSoC. Now, it’s time to talk about a few challenges that I faced. Also, I am not sure what impression I built until now but the reality is that I was extremely afraid of getting rejected in GSoC. I was a bit unsure if I will be able to manage my GSoC application process with my other commitments — I had two major websites to create and launch (POR work), and yeah, I was highly deficient in vitamin C (C for Confidence, obv)😛. In December, I had decided that as I’m not getting any internship, I’ll prepare for placements starting from the first day. If I go for GSoC, I’ll have to manage my time between GSoC preparation and placement prep and believe me or not, I’m the worst when it comes to time management😅. And all these things really confused me about whether I should apply or not. But the grass was really-really green on the “hard work” side compared to “whining”;  so I went ahead to graze it.

The preparation time for GSoC depends heavily on the project, but there are some computer science concepts and softwares that are employed in almost all projects. To name a starting few, I’d say Git and object-oriented programming concepts. Even if you do not consider yourself technically sound, don’t fret, this will be the time to learn new and exciting things. 

The Process

I first thought about doing GSoC during the early days of February and I wasn’t serious at that time because I was in the middle of a personal crisis and in a very unmotivated mental state; basically, I started with a very light attempt at GSoC. Anyway, as I had used Django and Python extensively in the past year,  I tried to look for past projects in these organizations (also in the previous year, one of the students from our batch did a project with python and one senior did a project with Django). I couldn’t find any new projects as the organizations had not started any GSoC discussions until then. I also considered C++ owing to its speed and applications in quantitative fields (which I have always wanted to pursue). I tried to look for some past organizations and projects with C++. I found LibreOffice, an open-source alternative to MS office for Linux users, but setting it up was very difficult. Also, you don’t want such problems when you are gathering the strength to work with c++. I liked it but who said it was easy, it was freaking deadly tough🤣! So I gave up within 2 days. Soon it was time for midterms and I gave up entirely on that project.

By February end ( before the midterms ended) organizations had started discussing GSoC ideas on their slack channels, and some organizations like R, Python, Django had already been accepted in GSoC 2021. So I knew what possible projects I had to choose from. Midsems weren’t going well; so I shifted my focus to GSoC and gathered the strength to again start looking for some projects. I looked into a python sub-organization called Tern. The project seemed doable and interesting plus no one had yet joined the slack channel from a GSoC perspective! There was one more project which I found interesting — The R project for software computing. GSoC allows one to submit up to 3 proposals, and all can be from the same or different organizations. I decided to pursue both the projects (R and Python), primarily to hedge the risk and later because I found them interesting. Now, Don’t stress about the number of proposals, as GSoC respects quality, and you can get selected for only 1/3 projects. So, a few people pursue multiple proposals for interest and willingness to contribute, and some pursue it as a hedging strategy. It’s really a personal choice and comes with a trade-off between the quantity and quality of the proposals. Aah! I lost the tracks😅 Let’s come back to discussing my organizations, R and Python( used interchangeably with Tern).

Both the organizations were structurally different — python has different sub-organizations (all independent) like Tern to work with but The R-Project has different ideas and projects to work on (all have multiple common mentors). Python Organization requires students to have at least one pull request (unmerged or merged) before submitting the proposal or else they won’t consider that proposal. On the other hand, R’s eligibility criterion was based on a test (free to use the internet and no proctoring), which checked knowledge of R language. I didn’t know it, but I thought to myself how difficult learning a new language would be if you already know some other— basic concepts are always the same. So I started to learn R basics and syntax in early March. I looked at various projects and as R is inclined towards the financial sector & data analysis; so I attempted tests of 2–3 different projects. As I was quite new to R, I went ahead with the easiest one at that time😛

Accepted projects and organizations were announced on the 10th of March. I had already decided on my organizations and projects and I was one with the head start😌. I prepared proposals for both projects simultaneously. I liked the tern project because of the challenging and interesting problem statement and the R project because of its applications in finance and the opportunity to interact with many great professors and professionals.

The project with R involved Prof Doug Martin and he is very verbose. During March,  I was looking at his research because I was supposed to implement one paper and he was quite proactive in explaining things and following up. The Tern project was based on development and I solved two issues (2 merged PRs) before proposal submission which increased my chances a lot.

Proposal making is project-centric so I’ll not comment on it much. As far as the basic outline is concerned, I took help from a senior’s proposal, who was accepted in GSoC-19 and contributed to Django. I used that whole proposal as a template so I could save time and effort in small details like the font size, design, or colours (I suck at designing🙈). One point worth mentioning about his proposal was that he had decided to work during the 20-day community bonding period in May as the GSoC period is pretty long, covering most of August. Since I had to sail the placement boat, I found this point worth mentioning in my proposal also😛. In short, ask for help from seniors, and friends. I took help from my elder sister, my DAMP mentor, my friends, and two-three other seniors. None of them had done GSoC before and some didn’t even like or know software development at all but provided me with some suggestions on my writing style, presentation, and understandability of the proposal. My sister helped me with the technical part but you can find many seniors who are willing to help. Of course, you should take help from organization mentors as they are the ones judging it but before that, a second opinion won’t hurt.

THE DOUBLE TROUBLE — By April, I had submitted my proposal and had a hunch I’ll be selected in both of ’em as I had received positive comments from my mentors — “We are looking forward to your proposal” (Tern) and “I’m keeping my fingers crossed that you get accepted” (R).

“I saved a life — my own. Do I call myself a hero? …….. I really can’t say, but yes”

Soon after the submission, I was selected at WorldQuant 🎉, through BT cell, as a research intern (dream role) and my dilemma about doing GSoC resurfaced. I surfed Quora to see if people do GSoC along with another intern and to my satisfaction found many such people. Now I just hoped to get selected in R, as it was a less heavy proposal out of the two. I had also asked the mentors at R if they were okay with me doing the internship alongside GSoC, which they were. Later, I found that my proposal was selected for GSoC with R😍!

This is a dream that I’ve had…since lunch…and I’m not giving it up now.

My experiences so far!

This will be the shortest section of this very long blog. It’s been a very different and thrilling journey working with R. The mentors are great and well-accomplished in their fields.  Although I only work on my GSoC project during the weekends as my weekdays are occupied with my WorldQuant intern, I have developed good professional contacts.

I work hard all day. I like knowing that there’s going to be a break. Most days I just sit and wait for the break 

From learning POV, I have gained new skills like learning the R language, software design and unit-testing. In short, GSoC gave me:- A sense of pride, lots of technical learning, professional contacts, a desire to contribute to open-source, a vignette published in my name, a stipend 🥱 and a chance to write this blog. 

Philosophically speaking, I have learned a lot of things in the whole process. It has taught me, or kind of reminded me, to never give up on anything and keep working hard because even after the darkest night, the sun will rise, and our duty to ourselves is to prepare for that lucky day, and win the game. I hope this blog was helpful and an interesting read. If you have any doubts or want to discuss anything, feel free to ping me on messenger. 

Hi. I’m Dhairya Jain, a (to-be) fourth-year undergraduate pursuing a bachelor’s degree in Economics at IIT Bombay (weird flex, huh?). I like to code, sing, and I’d like to warn you that I’m a hell of a bad writer, so excuse me for the mistakes, but it’s gonna be a long one. I’ve been involved with SARC for most of my time in the institute, besides lying on bed and watching web-series, and, yeah, if you think you’ve heard or known my name somewhere, then it could be from one of those “Yearbook deadline extended” mails, or maybe you have watched Aspirants already😂.

So here in this blog, thanks to @InsightIITB, I’ll be commenting about things like…

A. Pre-Intern Time — Why you should try for GSoC, Why I went for GSOC, and what challenges I faced after deciding to pursue it.

B. Getting through the process — How I chose organization (s) to work, and my whole 2-month journey

C. My experiences so far

Pre-Intern Time

So, speaking about my intern, I’m contributing at Google Summer of Code (yes, in the summers following my third year and not a lot of people do that; they usually get a good intern instead 😏). GSoC is a program started by Google for promoting open-source projects among students. Honestly, I was pretty much emotionally worn out after getting rejected the whole internship season, and it took a serious toll on my confidence.

Guess what, I have flaws. What are they? Oh, I don’t know. I sing in the shower. Sometimes I spend too much time procrastinating. Occasionally I’ll fail some tests and interviews. So sue me.😛

And the only reason that I decided to pursue GSoC was that I wanted to prove it to myself, and my selection in GSoC depends more on my efforts on the proposal and communication with the mentors, and not on my resume or presentation skills; so the reward is definitely proportional to work done. So if you want to explore software development or are worried about your CPI, or if you happen to be in my situation, you can go for GSoC, at least I did, and I think it was one of the best things I did to myself. This is, in my opinion, one of the best experiences you can have. You learn from the best of the people in the industry; you contribute to open-source projects (you wouldn’t be reading this if certain web frameworks were not open sourced), which is highly respected in the industry. Respected because you won’t be working for, but instead contributing to any organization, and you do your thing without being a corporate slave if that matters to someone. If this isn’t enough motivation then there’s more to it; you get paid too(more than enough to repair Joey’s fridge thrice😜 for 175-hours of work over 10 weeks) and you get to write in one of those insight summer blogs😉. Most importantly, you learn to learn, which is why any open-source contributions will shine (more than some random internship) on your resume irrespective of your selection in GSoC. If you commit to the process, you’ll definitely come out as a software developer, it doesn’t matter if you’re selected or not, and you’ll be adding a project to your resume.

I believe that all of this should be enough to motivate you to get started with GSoC. Now, it’s time to talk about a few challenges that I faced. I may have sounded like a lot of things till now, but I was very much afraid about rejection in GSoC, can’t get rejected everywhere, can I? There were times when I felt maybe it’s going to be too difficult, and I had two major websites to create and launch(POR work), and yeah, I was highly deficient in vitamin C (C for Confidence obv)😛. In January, I had decided that as I’m not getting any internship, so I’ll prepare for placements from the year start. So if I went for GSoC, I’ll have to manage my time between GSoC preparation and placement prep, and believe me, I’m the worst when it comes to time management😅. And all these things really confused me about whether I should apply or not. So you need to be mentally prepared for a lot of BT (we learn from it, don’t we!) in the process.

The preparation time for GSoC is entirely dependent on the project but there are some computer science concepts that are employed in almost all projects. So if you are one of those who think that they are not technically sound, don’t stress about that; maybe now is the time to learn new exciting things. A period as short as four months can make you ready to mentor a GSoC project, and we’re talking about being the mentee here. As GSoC is more about software development, you need to know the language better than its applications. So, focusing on the language and how things work is more important here.

The Process

I first thought about doing GSoC during the early days of February, and I wasn’t serious at that time, I was in the middle of a personal crisis. Anyway, I had used Django and python extensively in the past year, so I tried to look for past projects in these organizations (also in the previous year, one of the students from our batch did a project with python and one senior did a project with Django). I couldn’t find any new projects as the organizations had not started any GSoC discussions until then. I also liked c++ because of its speed and applications in quantitative fields (which I always wanted to pursue), so I tried to look for some past organizations and projects with C++ also. I found libre office (Linux users should know what it is), an open-source alternative to MS office for Linux users, but setting it up was very difficult; also you don’t want such problems when you are gathering the strength to work with c++. I liked it, but who said it’s easy, it’s freaking deadly🤣! I gave up after 2 days. Then came the midterms, and as I was angry at myself already because of the internship process, I didn’t do well in the first few midterms.

Towards the end of February, midterms didn’t finish by then, but organizations had started discussing GSoC ideas on their slack channels, and some organizations like R, Python, Django had already been accepted in GSoC 2021. So I knew what possible projects I have to choose from, and I gathered the strength to again look for some project, maybe an easier one this time. I am also someone who can’t handle a lot of competition, so I looked for projects in which not so many people are trying to get accepted. I looked in a python sub-organization called Tern. The project looked doable and interesting and no one had yet joined the slack channel from a GSoC perspective. But I thought that maybe I should hedge the risk and look for an alternative organization, in case the competition here increases, and I found — The R project for software computing (it’s that data analysis language you hear besides python).

Both the organizations have structural differences with one another; e.g. python has different sub-organizations (all independent) to work with, but The R-Project has different ideas and projects to work on (all have multiple common mentors). Python Organization requires students to have at least one pull request (unmerged or merged) before submitting the proposal, otherwise, they won’t consider that proposal. On the other hand, R’s eligibility criterion was based on a test (free to use the internet and no proctoring), which checked knowledge of R language (I didn’t know it, but how difficult can learning a new language be if you already know some other, concepts are always the same). So I started to learn R basics and syntax during early March. I looked at various projects but R is inclined towards financial sector / numerical analysis/algorithms / bio-tech / data analysis; so I attempted tests of 2–3 different projects. And I went ahead with the easiest one😛

Now, accepted projects and organizations were announced on 10th March and I had already decided my organizations and projects and I was one with the head start, which would help me in case the competition increased. I prepared proposals for both projects simultaneously. I liked the tern project because of the challenging and interesting problem statement and the R project because of applications in finance and the opportunity to interact with many great professors and professionals.

The project with R involved professor Doug Martin (Head of Risk management program at Washington University), and he was very verbose. During March, when I was looking at his research, because I had to implement one paper, he actively explained things and took follow-ups (“how are you doing? Have you read it? Any doubts?”). The Tern project was based on development and I solved two issues (merged PRs) before proposal submission, which increased my chances a lot, apart from the fact that in both projects, I was the only GSoC candidate (see my strategy?😂).

Proposal making is a very different topic and project-centric so I’ll not speak of it much. I found a GSoC proposal of one of our seniors on his GSoC blog (I didn’t ask for it specifically). He was accepted in GSoC-19 and contributed to Django. I used that whole proposal as a template and so I could save time and effort in small details like the font size, design, or colors (I suck in designing🙈). One thing I saw in his proposal was the point that the GSoC period is long and covers most of August so I’ll work during the 20-day community bonding period in May and not in August. So, since I happened to be in the same boat, I found this point worth mentioning in mine too😛. In short, ask for help from seniors and friends. I took help from my elder sister, my DAMP mentor, my friends, and two other seniors. None of them had done GSoC before, and some didn’t even like software development but provided me with some suggestions on my writing style, presentation (which obviously matters to some extent), and understandability of the proposal. My sister helped me with the technical part, but you can find many seniors who are willing to help. Of course, you should take help from project (organization) mentors as they are the ones judging it but before that, a second opinion won’t hurt.

THE DOUBLE TROUBLE — Now, comes April, and I had submitted my proposal with high chances that I’ll be selected in both of ’em. Mentors had already said — “We are looking forward to your proposal” or “I’m keeping my fingers crossed that you get accepted”.

“I saved a life — my own. Do I call myself a hero? …….. I really can’t say, but yes.”

Soon after the submission, I was selected at WorldQuant 🎉, through BT cell, as a research intern and I became confused about doing GSoC. I read some quora articles to see if people do GSoC with some other internship, and yes, there are many such people. So, I backed out of the tern project, as it was a technically heavy proposal, and just hoped to get selected in R. I had also asked the mentors at R if they were okay with me doing the intern alongside GSoC, which they were. And I’d be lying here if I said that I’ll back out if they had not been okay with it.

This is a dream that I’ve had…since lunch…and I’m not giving it up now.

My experiences so far!

This will be short as it’s been only one month and a week now and I was sick for 3 weeks in that. So I was not able to participate in any community bonding. Apart from sickness, it’s been great working with R. The mentors are great and are well-accomplished in their fields. I’m able to develop good professional contacts. I’m working on the GSoC project during the weekends and my Worldquant intern during the weekdays.

I work hard all day. I like knowing that there’s going to be a break. Most days I just sit and wait for the break (But there are none😂😂😂)

Time is always a bitch. All mentors are based in the US (some east coast and some west coast) so it’s difficult to find a perfect time that suits all but we have a weekly meeting to discuss everything where some mentors definitely come. For the future, I’m hoping to complete GSoC before time so that I can focus on placements. For any doubts, feel free to ping me on messenger.

2 months ago