How to "Crack" LFX(Linux kernel mentorship) in 9 months
Cliché, right? Sounds like I’m trying to sell you a course… (Or am I?).
“For guidance and to take my course, contact me on this number…” (Just kidding!).
But seriously, I assure you this is true. So true that even I don’t believe it myself sometimes.
Hello, my name is Madhur Kumar, an average programmer with average skills and a very average personality.
Some Background
So the story goes like this:
I came to college with just one motive I liked coding and I wanted to do it my whole life. In the first year, I mostly wasted time hanging out with friends. I did some DSA problems, tried some frontend stuff, but after a few months, I realized that creating webpages wasn’t for me. It felt like I was magically making something out of thin air without knowing how or why.
I started exploring different fields. By the third semester, a realization hit me that it’s time to start something seriously, and I had already wasted a whole year. Everyone around me was already doing internships, building projects, and earning money in areas like frontend, backend, AI, DevOps, and cybersecurity. I felt this intense FOMO.
Then one day, while solving a CTF problem in cybersecurity, I discovered that you could break some security by reverse engineering and changing a few bits at the assembly level. That hit me like a spark I realized this was what I had always wanted. I wanted to understand what happens at the most fundamental level.
From that day, I went on a journey to learn everything from scratch how sand is turned into silicon, how CPUs are built, how electrical energy is stored and translated into 0s and 1s, how assembly plays a role, how low-level languages work, and finally how high-level languages fit into the picture.
I read all the fundamental books I could find OSTEP, Linux, UNIX, how memory works, basic networking. But I also knew that just learning wouldn’t give me a stable income to fill my stomach.
So I spent some time researching domains that revolve around low-level programming. I found two really interesting ones: Linux Kernel Programming and Compiler Development. Both are deep and huge domains on their own, so I decided to go with Linux first.
After 2–3 months of learning, I realized I needed a way to track my progress and see if I was on the right path. I joined Discord channels, browsed Reddit, chatted with people, and searched for someone to work with. I built a few broken projects here and there until I found a club called Point Blank where some seniors were already doing low-level programming.
I reached out to one senior who was actively working on Linux Kernel, messaged him for some pointers, and from there, my journey as a club member started.
Linux Kernel
As I mentioned, I started learning from scratch with the help of books and building small projects around low-level programming.
After cloning the official Linux repository and just poking around, I wanted to see if I could find something to work on. I went through kernel development textbooks in the hope that one day I would be capable enough to contribute to this small open-source project (not funny, I know).
I learned how to:
- Compile the Linux kernel,
- Build and load kernel modules,
- Integrate QEMU and GDB to make life easier for debugging.
I even tried to go function by function to see how deep this rabbit hole goes (spoiler: it goes way too deep).
Meanwhile, I was ashamed of my resume ,it had 3 projects that were barely worthy of being called projects at all. I felt uneasy, thinking maybe I started too late, maybe I wasn’t good enough. Still, I continued. I loved every bit of it.
Approaching Linux Foundation Mentorship (LFX)
Later, the seniors posted in the announcements that LFX ( fall term) is live, with a strict note saying everyone must do it.
But I was hesitant because my resume was unfinished.
I thought before applying, I should take some time and build at least one project to showcase some Linux Kernel skills. Even though I didn’t want to rush, I knew I had to. So I sat down, brainstormed, and decided: Why not build a simple driver?
I set up Linux with QEMU so I could build a GPU PCI device, write a driver for it, and create a userspace program to test that all three layers worked together. I took my time understanding everything, finishing the project, and it gave me a general overview of how everything connects.
After that, I added the project to my resume and registered for LFX. I wrote my introduction and cover letter thinking this would be it ,there’s no loss even if I don’t get selected.
But after registering, I found out there were tasks I needed to complete before applying.
Again, I got reluctant ,I started questioning my skills without even seeing a single task. But I told myself, If I’ve come this far, why not try a little more? So I started with the easiest or most familiar task, completed them one by one, took way longer than I should have, but kept going.
The day I submitted the last task, I felt an immense sense of relief. No more kernel builds, patches, emails I left everything to fate. If it happens, it happens. If it doesn’t, it doesn’t. I didn’t want to think about it anymore.
But then, one day, I decided to review my patches and found mistakes. My heart sank I thought, This time I’m not getting it. I’ll try next time.
And I forgot that LFX even existed.
Approaching D-Day
Meanwhile, organizations started announcing their mentees. People were getting results. I felt restless, even though I had no burden, the effort I had put in made me wonder, Maybe somehow I’ll get it.
The mentors posted that results would be announced on 8th September. As the day approached, my restlessness grew.
Finally, at 2:47 AM on 6th September, I received the message.
I was happy. It felt like I had achieved something. I shared it with friends, family, and the club group it felt good to tell them that I had something to contribute as a member.
But after a few minutes, that happiness faded. I sat there thinking, Why did I get it? I really wasn’t expecting it.
Everything slowly faded. I slept, and the day passed.
Quote: “In a world full of arrogant elitists, I’m just a humble seeker.”