Experience of applying to Outreachy

My institute has a rich culture of open-source. Most of us try for GSoC and Outreachy each summer. And more than 40 students succeed almost every year. You can see the hashtags of the like of ‘AndhaPaisa’ (mad money), ‘AndhaMachaya’, and ‘God’ floating everywhere on social media towards the April-end. So this legacy of striving for various ‘Summer of Code (SoC)’ programs was passed down to me by my beloved and always-helping seniors.

How it started

In my first year, I went through the projects, and I knew immediately that I need to build-up more skills. I was just familiar with App Development at that time. So, I came up with an elaborate goal for the coming year, of all the areas I wanted to explore. Which failed. Miserably. I started with Deep Learning, and I got so engrossed with it, that that was all I studied. Hence, by the time December came, and I had to search for organisations and projects, I had just a few skills at hand. Fluency in Java, Python, and a love for Mathematics and Algorithms.

I had an eye on two organisations for Outreachy. One, Mozilla. It has with it a lot of perks, including a MAC BOOK PRO (Edit: It was provided until last year, not anymore. I wasn’t aware of this change). Who doesn’t want one?? Second, the Linux Kernel. I am so much in awe of Linus Torvalds. When I switched from Windows to Ubuntu in my first year, I was so ecstatic. It works so seamlessly, and I have practically opened Windows only once after that, to use Unity3D, which for some reason doesn’t work so well on Ubuntu. So I knew this organisation was out of my league and I decided on practising more and coming back to it next year (which, fortunately, I don’t need now). Apart from this, I had zeroed down a few Mathematics and DL based organisations in GSoC as well. But I was warned against them by my seniors because usually, PhD students have a better chance of getting those projects.

Contributions

January came, and I started with Mozilla’s Fenix. I am experienced in AppD; hence it was comparatively more comfortable for me to take it up as my first Open Source contribution. After a few merged PRs, I came to know that they weren’t planning on having Fenix’s Android project in SoCs. It was around January 20th at that time. So, I finally gathered the courage to build THE Linux Kernel for development. It took more than 3 hours to clone and an entire night to make (because I ran it on single thread xD). I started with a few cleanup patches. Linux requires Outreachy applicants to submit about ten cleanup patches and two patchsets before contributing to the desired project. This is important as it helps to get the hang of sending patches through the mail and brushes up our git skills as well. But I was still very confident that I don’t deserve Linux. So when GSoC announced its organisations’ list, I filtered a few and started working with their mentors. When Outreachy announced the projects a week later, I found one Mozilla project involving DL, so I knew I could do that too. Honestly, I didn’t want to work on DL yet another summer. I wanted to try something new; hence I continued with GSoC orgs and Linux clean-ups as well.

Mid-March, I had completed the ten cleanup patches and two patchsets’ requirement. Linux had listed down five projects, of which I found libcamera the most interesting. I went through a few recordings of conference talks on libcamera, of which I could understand very little (xD), but I found it fascinating; hence I went ahead with it and joined its IRC channel. At the same time, I kept on contributing to Mozilla but stopped with my GSoC contributions, because I couldn’t keep up with all of them. As for libcamera, I had worked with C++ in the past, but I had never worked on a kernel. I had a bit of theoretical knowledge about Operating Systems, but that was it. So, I was a bit scared about taking up the tasks, but it went well. The mentor, in fact, the entire community is very responsive and helped me at each point. But, I was still consistent with Mozilla’s patches.

Wrap-up

When I submitted the final application, I didn’t know that I would be allowed to give my preference for the project I want. Though I was a bit sure about libcamera, given my mentor’s responses and my patches, I didn’t want to spoil my chances of getting in Outreachy by applying to just one project. At the same time, I was afraid of losing my opportunity to learn something entirely new to me. So ultimately, after talking to many seniors (to quote them, “We are not in college to take goodies, but to learn new things.”), I decided on going with libcamera and applying to only it.

Result!!

The results were announced on May 4th and Yayyy! I got in. So, I still think I don’t know much of Kernel-dev, and I am utilising this time before the official coding period (from May 19th) to learn that and understand Linux-media on which I will be working. Looking forwards to an exciting summer!