by Swapnil Bhartiya

How one girl is making good on her dream to become a Linux kernel engineer

Dec 08, 2015
CareersLinuxOpen Source

An interview with a recipient of the Linux Foundation’s Linux Training Scholarship Program.

Gender gap is one of the hottest topics in the tech industry. To address this, many organizations in the open source world, including the Gnome Foundation, Mozilla Foundation, and The Linux Foundation, organize programs to encourage female participation.

The Linux Foundation’s Linux Training Scholarship Program offers free training to individuals. Vaishali Thakkar was one of the recipients this year under the Kernel Guru category. She lives in India and recently completed an Outreachy internship on project Coccinelle.

I reached out to Vaishali to learn more about her experience with the Linux community, the atmosphere in India for Linux developers and much more.

Swapnil Bhartiya: Tell us about yourself – where you live, what you do?

Vaishali Thakkar: I am graduated this year with major in computer engineering from Gujarat Technological University. I have recently started working as a Linux Kernel Engineer in Oracle. And I am now relocated to Bangalore for my new job.

What got you interested in Linux and open source?

I came to know about Linux and open source from Operating system course during my under graduation. I was always interested in knowing more about the Linux kernel and open source technologies. But I didn’t find a time for it. It just ended with installing Linux distro and using open source tools. I started doing real work after meeting with an accident. Doctors advised me not to get out of bed for 3 months. So, I looked at those 3 months as an opportunity to dive into open source technologies and Linux kernel. I experimented with Kernel code, learned new languages and worked on some personal projects.

Personally I love open source technologies because it allows you to experiment with the code and gives you a freedom to use it the way you like. Open source has allowed me to sharpen my technical as well as interpersonal skills. And most importantly I have had the privilege of meeting some amazing and intelligent people because of open source.

What is Outreachy internship?

For me, in one word Outreachy is HUGE! If done right, it is perhaps one of the world’s best experiences for aspiring developers. Basically Outreachy is a program which helps people from groups underrepresented in free and open source software get involved. It is a Google summer of code kind of internship program with exception in few rules. It provides a supportive community for beginning to contribute any time throughout the year and offer focused internship opportunities twice a year with a number of free software organizations. Outreachy is managed by Software Freedom Conservancy.

You recently completed an Outreachy internship on Coccinelle, can you tell us more about the project?

Yes, I worked as an Outreachy Linux kernel intern on project Coccinelle under the guidance of my mentor Julia Lawall. Coccinelle is a program matching and transformation engine which provides the language SmPL (Semantic Patch Language) for specifying desired matches and transformations in C code. It is basically written using Ocaml and Python by INRIA researchers. Julia Lawall is a maintainer and core developer of Coccinelle. It is successfully used for finding and fixing bugs in Linux kernel. As of now, there are around 4621 accepted patches in the kernel.

The main goal of my project during the Outreachy internship was to replace out of date API uses with modern equivalents using Coccinelle. I worked on various API functions/macros like timer API functions, ether device API functions, boilerplate code of module init/exit, resource managed functions (devm functions), etc. as part of my project.

You received a scholarship in the Kernel Guru category, what is Kernel Guru?

Guru is a Sanskrit term and the dictionary defines it as a someone who is a “teacher, guide or master” of certain knowledge.

But I think it is something more than that. If people come to you asking for Kernel related questions and they can learn something from your discussion then you are Kernel Guru, otherwise I guess you’re just a person who knows a bunch of things. While replying to personal mails from newbies about Kernel related questions, I always add one line in the end and that is “Welcome to the Kernel community.” And I have seen patches from some of those people after such mail.

For me, there are many Kernel Gurus in my life from whom I learned a lot and am still learning. I am thankful to Linux Foundation for giving me an opportunity to learn more through Linux Foundation training course.

What roles do mentors play in these endeavors?

Mentors do play a very important role in helping you in your journey. I am lucky enough to have such mentors who supported me in these endeavours. Julia Lawall, core developer of Coccinelle was my mentor.

She not only helped me during my Outreachy internship, but also guided me at various stages of my life. It’s more than a year since we met but I still remember that first mail from which I started contributing in a Linux kernel. From a first patch to first dream job, she was always there whenever I need her.

I am also thankful to other Outreachy mentors like Greg, Daniel, Arnd, Jes, Marina, Sarah, Karen and many other kernel maintainers for being so patient and answering newbie questions during application period and internship as well. And lastly my guardians who supported me during my open source journey.

And this year I am also volunteering as a Google Code-in, 2015 mentor for RTEMS project.

What kind of environment is there in India for Linux and Open Source development?

It’s very diverse. If I talk about institutes then it totally depends on the particular university. In top colleges, students are encouraged to use open source tools and introduced to git, Linux, etc. from their first year. However, I didn’t study in such a university, I think it’s not difficult to find readily available resources in the internet era. I have seen many active Linux user groups and their activities from social media. In 2014, Google summer of code had maximum students accepted from India. And now even the Government of India has adopted a comprehensive and supportive open source policy.

What do you think is needed to encourage more participation by Indians in the kernel development?

I am not sure about other countries but people find ‘Linux kernel’ a big word here. When I tell people that I am a Linux Kernel engineer, I often receive a response like ‘Oh, Kernel! I have heard this word somewhere in the operating system course’. I think it’s necessary to make people understand that Kernel hackers are not magicians and if they try to dive into the Kernel then they can also become kernel developer. So, in this kind of situation, I think some primary level courses about where to start, how to start, how to go along with the line can help to encourage more participation. Linux foundation is doing very good by introducing such courses and I think Indian universities should design such courses or sessions as well.

Can you name some factors that deter Indians from becoming a contributor?

One of the things that I have seen in Indian newbies is hesitation of asking questions. People are usually afraid of asking questions in public mailing lists or on IRC because they think that this might be a stupid question and they must know the answer of it. I often receive personal mails from random people regarding my work and their issues starting with tools. And I always advise them to ask such questions publicly as asking them publicly always leads to various kind of tips and tricks from developers and can benefit other people who are facing same problem as well.

Can you tell us about the open source projects you are associated with?

Sure. I am an active contributor of the Linux Kernel. I started working in the Linux kernel from a year ago. I have more than 120 patches accepted in the Kernel.  I have also written some common Coccinelle scripts to find/solve Kernel bugs. I also like to help people solve queries during my free time. So, I often participate in such discussions in kernel mailing lists and on IRC as well. And now I have accepted a full time job in the same area.

Your dream is to become a Linux kernel engineer? What’s so exciting about Linux that you have such a dream?

One of the important things now is you can’t imagine a world without Linux. And it always makes me feel good that code written by me is touching many lives around the world. It’s been a year since I started contributing in a kernel, but still that ‘Patch applied, thanks’ mail from maintainers excites me in the same way and encourages me more to contribute in a kernel. And I am thankful to those people as they are the ones because of whom I have found my dream job. I am hoping for learning more from the kernel community through my new job.

What are the areas in the Linux kernel where you would like to contribute?

Specifically I am interested in memory management and power management. And I am happy that I am going to work in one of them as part of my full-time job. I also care about security related things and hope to contribute in them in the future.

Is the environment of the Linux kernel development friendly toward new developers? Female developers?

Definitely. I was never treated differently as I am a female. Yes, it’s true that generally in some subsystems people are less friendly at initial points. But once they start knowing you, they will be fine. And I guess that is common with many people. I always received valuable advice from maintainers and other developers. I even received some personal mails from other developers/maintainers praising my work and giving me career related advice too without asking.