If you don’t know what is Outreachy internship, first check out my post describing that here. In this post, I’m describing my journey of getting selected as an Outreachy intern for the Linux Kernel.
How I came to know about Outreachy?
Back in the days of my graduation, I attended a workshop to learn Python programming. During one of the sessions, the mentor mentioned about Google Summer of Code(GSoC) and Outreachy. He also encouraged the participants to check out previous projects offered by these internship programs and consider applying in the future. A shout out to Dharmit Shah for being a fantastic mentor.
Motivation for applying
I am fascinated with Operating Systems. I love trying different Linux distributions and I enjoy tweaking how my desktop looks and feels. I grew more interest in OS after attending the awe-inspiring course on it by Professor Khaleel Ur Rahman Khan of ACE Academy. Now at DAIICT, I actively contribute to the OS course for the Faculty Training Program(an initiative by the government of Gujarat to improve quality of technical education).
I’m a Linux enthusiast and I have been looking for ways to contribute to it. Hence, applying to the Linux kernel seemed like a perfect opportunity for me. Linux kernel has been evolving for more than two decades, comprises of millions of lines of code, has millions of users and supports numerous architectures. I was very excited about working on such a state of the art project with the diverse and experienced kernel community.
I am enrolled in a full-time M.Tech program and I was taking 6 courses. So every day I was attending lectures till the afternoon and labs in the evenings. Moreover, I had 6 hours per week time commitment in afternoons for my Teaching Assistantship. Managing my academics and contributions for Outreachy was quite challenging. So in order to find more time to work on my contributions, I let go of my Teaching assistantship and reduced my sleeping hours.
Watch and learn
I learned about the application process and previous projects in my free time by checking out the codebase, IRC conversations and previous interns’ blog posts. I also subscribed to the outreachy-kernel mail list and contacted a few of the Outreachy alums to clarify my doubts regarding the application process. Thank you Alisha Aneja and Aishwarya Pant for taking the time to answer my questions.
Getting started with the Linux kernel
I started early and submitted my first patch in January. It was intimidating to send patches to the public mail lists in the beginning. I made a few mistakes too. But every time I was corrected by community members in a polite and respectful way. I found it very encouraging and welcoming.
Before and during the application period, I submitted a few patches to Greg Kroah-Hartman’s staging tree. Working on these patches helped me to get familiar with the patch submission process. I also suggested including a few additional steps to the first patch tutorial for Manjaro/Arch Linux and a brief description of dependencies needed to build the kernel. I was encouraged to come up with content for that. Julia Lawall helped me by reviewing the content and granted me edit privilege for adding it to the tutorial. Later, I learned about the issue of missing of_node_puts from her. I worked on a few patches for that and submitted them to different subsystems of the Linux kernel. This way, I could interact with a few other members of the community.
Asking questions and Seeking help
Outreachy is a remote internship. So communication is the key. It is okay to not know something or struggle to understand. Mentors and other community members are always willing to help. You can learn from them only if you ask questions. It is also important to know when you’re really stuck and need help. Sometimes an extra set of eyes can spot something which you’ve missed even after trying really hard. Thank you Professor Amit Mankodi for helping me out when I was stuck.
While selecting the project, I checked if my laptop was able to meet the system requirements and if I was having a matching skill set required for the project. The Hyper-V project description stated that the task is to fix incorrect assumptions made by the current Linux code about the Linux guest VM’ page size being the same as the page size used by the Hyper-V hypervisor. I found it quite interesting. I also wanted to explore more about virtualization so I decided to learn more about this project.
I sent an introductory email to the mentor and asked for the directions to get started. He responded with instructions to set up the development environment and explanation about internship task in great detail. He also checked with me if I could understand it and encouraged me to ask questions if I had any doubts. He suggested me to learn about page size declarations and kernel’s memory allocation functions. After learning that, I started looking into the code and tried to identify possible issues. I discussed fixes for these issues with the mentor and he gave me more insights on that. I really enjoyed these discussions as I was learning many interesting and new things.
I also continued to work on staging patches for my project application. I spent most of my time in learning about the hyper-v project and working on Coccinelle challenge problems during the application period.
A note of thanks
Thank you to the organizers for always being responsive and clarifying my doubts. A special thanks to Julia Lawall and Vaishali Thakkar for reaching out to me when I needed help and guidance.
If you are an Outreachy aspirant and got any questions, especially regarding applying and contributing to the Linux kernel, I would be happy to help. You can find my contact details on the Contact page.
Outreachy is an excellent learning opportunity. You are not supposed to be an expert in order to apply. All you need is the willingness to put efforts and learn. Thank you for taking the time to read about my journey and I wish you all the best for yours.
– Originally posted here / Reposted with permission.
Support FreshGrads.Info By Sharing
If you enjoyed and learnt something new from this post, Please share it with your friends.
“Love only grows by sharing. You can only have more for yourself by giving it away to others.” ― Brian Tracy