The Linux Kernel Mentorship is Life Changing

By September 9, 2019 Blog

Guest Post By Kelsey Skunberg, Linux Kernel Mentorship Program Mentee

 

My name is Kelsey Skunberg and I am starting my senior year for my Undergraduate in Computer Science at Colorado State University. This summer, I had the honor of participating in the Linux Kernel Mentorship Program through CommunityBridge. Throughout the mentorship, I grew very fond of working on open source projects, learned to work with the open source communities, and my confidence as a developer has grown tremendously.

Since the beginning, I found the Linux kernel community to be very welcoming and willing to help. Many of the developers and maintainers have taken time to answer questions, review patches, and provide advice. I’ve come to learn contributing is not quite as scary as I first anticipated. It’s ok to make mistakes, just be open to learning and new ideas. There are a lot of resources for learning, and developers willing to invest time in mentoring and helping new contributors.

Before learning of the Linux Kernel Mentorship Program, I was interested in learning how to contribute to the Linux kernel, but didn’t know how and where to start. The application process alone helped me learn the basics of Linux kernel development, how to get started contributing, and more importantly how to work with the kernel community.

The application process gave me the foundation needed to contribute to the Linux kernel by teaching me how to build patches, debug, complete boot tests, and start working with open source communities. I was able to grow these new skills throughout the mentorship program while working on my selected project.

I chose to work on PCI Utilities and Linux PCI with Bjorn Helgaas as my mentor. Bjorn has been an incredible mentor who provided me with a great amount of advice and has introduced me to several tools which make the development process easier.

My project has consisted of multiple tasks that helped clean up code, and enhance existing PCI features.

I enhanced lspci to:

  • Decode AIDA64 log files (Started by Bjorn Helgaas)
  • Decode earlydump output (Started by Bjorn Helgaas)

I restructured and improved lspci and Linux PCI code by:

  • Finding and removing unused code (functions, API)
  • Moving functions to better locations
  • Improved logic to improve maintainability of Linux PCI code paths

I’ve been able to study how PCI works, learn how to navigate the kernel tree, and gained a lot of experience working with the Linux kernel community to get patches applied successfully.

I am also very thankful for the mentorship program for bringing me to Open Source Summit 2019 in San Diego, where I’ve been able to learn, network, and work on my public speaking. I co-presented with Shuah Khan about my experience as a mentee. View my presentation slides.

Moving forward, I plan to continue contributing to the Linux kernel and being part of the Linux kernel community even after the mentorship ends. I’ve truly enjoyed the past three months and while I continue to learn, I hope I can pass on what knowledge I’ve gained to future mentees and others interested in learning Linux kernel development while I continue to grow myself.

Thank you Shuah and the Linux Foundation for this opportunity. I am thankful to everyone who has helped me get my feet on the ground.