The #kernelnewbies irc channel gets visited regularly by people who would like to get a job as a kernel hacker, but are not sure how to get such a job. There are a number of things to keep in mind and a number of things you can do to give yourself the skills you need to be more likely to get such a job. The most important thing to remember is that you need experience - but unlike other job experience, you can train yourself in your spare time. In fact, most kernel hackers started out working on the kernel as a hobby, and only later became professionals.



* Play around with Linux, try configuring new and exciting drivers, maybe get a job as a system administrator. Many of the current Linux kernel hackers have once made their living as a system administrator. In that job, you get to fix problems by trying out new software, finding and fixing bugs and trying out new features (eg. LVM) when they become available. This makes you familiar with many aspects of the Linux kernel and other parts of the Linux system. More important still, it gives you some of the problem solving skills, and patience, needed to be a kernel hacker.


* Read the linux-kernel mailing list and stay aware of what is going on in the Linux kernel development community.


* Run the very latest kernel on one of your systems. Try to compile the latest kernel snapshot and reports bugs with it to the linux-kernel mailing list. When a bugfix is created, apply the bugfix patch to your system and confirm that the bug is indeed fixed. If you really get into this game, you will find a number of fun patches on the linux-kernel mailing list and apply those to your kernel. Working out the patch conflicts between multiple patches gives you the experience needed to move on. Once you have a handful of patches in your own patch set, to carry around from kernel to kernel, you could publish your own kernel patchset and try to fix bugs in it that other people find.


* Help the Kernel janitors project, making easy modifications and cleanups to the Linux kernel source code, together with people who can explain you why those changes are needed. This helps you get familiar with the Linux kernel source code, and at the same time you do something useful for the Linux community.


* Find bug reports on the linux-kernel mailing list or the Kernel Bug Tracker and help fix them. In the beginning you may be restricted to helping reproduce the bug and tracking down what is roughly the cause of a bug, but after a while you will become familiar with the source code and will be able to fix bugs yourself.


* Once you are a proficient bug fixer, chances are you have become familiar with one or more of the Linux kernel subsystems. You will be able to help with new developments in this kernel subsystem and people will start recognizing your name. This would be a good time to start applying for that kernel hacker job, since people are already running your source code.


Don't be disappointed by the fact that this process can take several years - all the steps involved with getting the needed experience are fun and useful, and you may even run into an even more fun career choice along the way!