Header Example

The Linux Kernel Mentorship Program (LKMP)


#kernel   #linux   #lkmp  

Update: I have been accepted as a co-mentor within the Linux Kernel Mentorship Program: Bug Fixing Spring 2024, hosted by Shuah Khan. Therefore, there is yet another reason to apply: let me tell you all this stuff live, so you don’t have to read anything :joy:

co-mentor

That was the update. You can keep on reading to know what I am talking about.


LFX
From zero to LEADER!! PR aside, an awesome program!

I graduated from the Linux Kernel Mentorship Program: Bug Fixing’23 a few weeks ago, and I thought that my experience could be useful for people who are looking for an efficient way to learn about the Linux kernel and how to contribute. If you are one of those, following my blog is obviously the shortest way to success. Look no further, read my posts and attain full enlightenment.

Jokes aside, there are other (more serious) learning paths you may want to know (perhaps follow), and the LKMP is a very effective one.

Content:

  1. What is the Linux Kernel Mentorship Program?
  2. What do I need to know before applying
  3. Why should I apply?
  4. Why should I NOT apply?
  5. What does it look like?
  6. You convinced me, how do I apply?
  7. My personal assessment

1. What is the Linux Kernel Mentorship Program?

The name is self-explanatory, but let’s dress it a little bit. It is a mentoring program sponsored by The Linux Foundation and hosted by Linux kernel contributors with a lot of experience, typically well-known maintainers, supported by co-mentors, typically highly-motivated contributors. The main variants of this program are Bug Fixing and Development (seems to be stalled at the moment), but at the end of the day there is little difference between them because you will be free to do whatever you want to contribute to the kernel. That is so true that many of the mentees in the Bug Fixing program developed new device drivers during the mentorship, including myself. The real goal of the mentorship is that people get to know the Linux kernel and learn how to contribute to the project. So don’t fool yourself waiting for one variant when the other one is accepting applications. You will benefit from any of them, and you will contribute the way you consider opportune.

The LKMP is free and unpaid. Think of it as a great opportunity to learn from experts for free without having to do any specific task. I can guarantee you that you will never have the feeling you are working for free. You will be working for yourself, on the tasks you chose, and for an open-source project, which again can be seen as working for yourself :wink:

Completed program
Who went to the club with the $100? Not me!

The LKMP is offered either full-time for 3 months or part-time for 6 months. From my own experience, I can tell you that even the full-time program does not require you to work full time if you are minimally efficient. I have a full-time job, and I managed to complete the program in my free time without sacrificing too much. Loving what you are doing also helps :smiley:

2. What do I need to know before applying?

It is worth mentioning that the LKMP is almost, but not completely, for everyone, and (very) basic knowledge of the Linux kernel is required. Some tasks will be assigned to you during the application process, and they will require you to compile the kernel and program very basic drivers (yes, that was a requirement to join the Bug Fixing variant… just in case you did not believe me). Now that I told you, you can start learning such things before you apply.

The tasks are rather basic, but you should be willing to invest some time to provide a nice and clean solution. Most applicants fail, so if you really want to join, take it seriously. When I applied to the LKMP, I think 22–23 people were accepted. According to the welcome email, close to 300 people applied that time, so less than 10% of the applicants got the chance.

And that is all the information I am willing to release about the application process. No shortcuts/code to copy this time, you have to earn your right to participate! By the way, if you try to copy the solutions (from friends, blogs, AI, etc.) without being able to complete them on your own, you will struggle during the mentorship and in the end you will fail. Don’t deceive yourself and make some (minimal) effort.

3. Why should I apply?

You don’t really need the LKMP to start contributing to the Linux kernel, and most of the contributors out there have never heard of the LKMP. But there are several reasons why joining is a good idea:

  • Learn from experts: mentors are experienced kernel developers and a great source of information that is difficult to find on your own.

  • Speed up the learning process: thanks to the material you will be provided with and the guidance of your mentors, you will go through the first stages very quickly.

  • Meet people with similar interests: the vast majority of the mentees are diligent developers, and you will have the opportunity to interact and even collaborate with them. Some of them were remarkably good: great contacts to keep!

  • Promo: hopefully that is not your main goal, but graduating from the LKMP is something you will mention relatively often… by chance, of course.

4. Why should I NOT apply?

You should not apply if:

  • It is not your preferred mentorship: if you are more interested in other mentorship programs sponsored by The Linux Foundation (there are dozens of them about a number of topics), apply for the one you really prefer because once you complete a mentorship program, you will be rejected every time you apply for a different one. Apparently some people changed their names a little bit in the application form to join a second program and they were caught: ban from The Linux Foundation forever and no graduation whatsoever. FAIL!

  • You don’t have time for it: be realistic and don’t torture yourself. You will not enjoy the mentorship and probably fail. There are other, less time-consuming options to learn that might fit your availability. As I said, few contributors know the LKMP at all, and even less went through the program. It is a nice experience and it shortens the learning curve, but by no means something you need.

  • You are an experienced kernel developer: you don’t need the LKMP anymore, so keep doing whatever you are doing in the kernel and let beginners get proper training.

5. What does it look like?

The program does not have a strict structure or unmovable milestones: flexibility is the word that best defines the LKMP. Nonetheless, the course of the mentorship can be synthesized as follows:

  1. First 2–3 weeks to learn the basics through reliable sources of information (mostly articles and webinars).

  2. Continuous learning: you will decide how you want to contribute to the kernel and your mentors will provide support and guidance to help you reach your goals. Reading my series about how to contribute to the Linux kernel will make your life much easier :wink:

  3. Finalization: you should have been able to get at least 5–10 patches accepted upstream and you will be expected to report your results as well as your impressions about your journey throughout the mentorship.

Your mentors will provide several channels of communication, being the mentoring hours the most remarkable of them. Once a week you will have an online meeting with your mentors and colleagues where you will have the chance to ask specific questions about any issues you may be having and get immediate feedback. Furthermore, your mentors will prepare a few live sessions about some relevant topics and useful tools for Linux kernel developers. Apart from that and depending on the mentor’s preferences, forums, discord and IRC channels, and of course contact per email will be available.

The downside from such a flexible program is that you will have to stay focused and organize yourself to avoid procrastination. Therefore, it is important that you decide what parts of the kernel could fulfill your interests at the beginning of the program. Take a look at the general structure of the kernel and pick 1–2 subsystems that caught your attention. If you do so, you will not get overwhelmed by the size of the whole project and you will start contributing shortly after.

6. You convinced me, how do I apply?

It is a very simple process. Go to the LFX Mentorship portal, create an account, look for a program you are interested in, and click on Apply. Given that we are talking about the LKMP, check if that mentorship is currently accepting applications. If not, wait for the next opportunity. The LKMP typically runs several times every year, depending on the mentors available and other factors I ignore, and the application process stays open for about a month.

I would recommend you to check the LFX Mentorship portal regularly (every couple of weeks should be enough) until it accepts applications again. In the meantime you might find some other interesting mentorships, but you are patient and will wait for THE RIGHT ONE. Am I a little biased? Hard to say.

7. My personal assessment

Joining the LKMP was a great idea. I learned a lot throughout the mentorship and my abilities as an embedded systems developer increased exponentially… Ok, enough PR here as well :joy:

The key factor is that it turned hacking the Linux kernel into one of my hobbies. A hobby that I really like, value and practice on a regular basis. Thanks to the LKMP, I could focus on net development, which made me enjoy working with the kernel a lot. I would have probably moved on if the learning process had been tedious or writing kernel code had been just work. But it was not, and here I am, contributing to the kernel as a hobbyist for the fun of it and sharing information, so others can do it as well.

You don’t need to turn into such a geek if you don’t want to. Actually, I profit from many things I learned during the mentorship at work too, and that would suffice by itself. But if you ask me, I would recommend you to use the LKMP to become a geek, though :wink:



Enjoy and share knowledge!



Footer