This week's profile interview is with John Linville, the maintainer of the wireless LAN subsystem in the Linux kernel since 2006. Linville says he doesn't keep score and acknowledges there are a lot of ways to get at the same problem. All of the profiles to date can be read at our 30 Linux Kernel Developers in 30 Weeks site.
John W. Linville
What role do you play in the community and/or what subsystem(s) do you work on?
Since 2006, I've been the maintainer for the wireless LAN subsystem in the Linux kernel. I wish this meant that I wrote tons of cool code, but for the most part it means that I review code, collect and merge patches, etc. In truth, most of the wireless developers know a lot more about the technology than I do. I think this has allowed me to be more of a "neutral player" in terms of balancing the influence of the various contributors. But in truth, I mostly stay out of the way as the core wireless developers mostly play nicely together. :-)
More recently, the developers working on Bluetooth and Near Field Communications (NFC) have been sending their patches through my trees as well. I am not an expert in those technologies, either! But, I think that the role I play there helps to offload some work from Dave Miller in order to keep code flowing more smoothly towards Linus.
Where do you get your paycheck?
I am an employee of Red Hat, Inc.
What part of the world do you live in? Why there?
I live in a somewhat rural area, about 45 minutes west of Raleigh, NC. The area where I grew up was similar to here, and I believe that this is a good place for raising a family. I usually work out of my home, but I often go to Red Hat's office in Raleigh in order to get some "face time" with some of my co-workers.
What are your favorite productivity tools for software development? What do you run on your desktop?
I'm a simple, command-line guy. My desktop screen is usually full of terminal windows, and I am happy to use Bash, sed, and awk when I need automation.
As for desktops...I was a KDE 3.x user but never adapted to KDE 4.x. Then I was a GNOME 2 user, but...well, now I'm a refugee again.
How did you get involved in Linux kernel development?
Nearly 20 years ago, I had to do some hacking to get my ethernet card to work with whatever kernel was current at the time. But, I didn't get serious about Linux development until late in 1998. At that point I was trying to use Linux as the OS for a hardware demo platform my employer provided to customers. The demo hardware was a network processor, and I was using Linux to provide the networking stack to make the network processor do something worthwhile. Of course, that was before Linux dominated the embedded market. So when I got it working, the management of that company patted me on the head and then asked me if I could make it all work on top of VxWorks. Fortunately, other employers later became more interested in my Linux skills!
What keeps you interested in it?
Linux and open source is just a good fit for me. I used Unix-based systems when I was in college, and I've always found the 'Unix philosophy' to be an appealing way for me to make good use of computers. So, Linux is the natural, modern choice for continuing that tradition. Further, as a computer engineer I want to be able to get 'under the hood' to fix or enhance things as desired. The Linux kernel and the other open source bits of a Linux-based distro fulfill my need to be able to make the computer fit my needs, rather than having to adapt my needs to what someone else provides.
What's the most amused you've ever been by the collaborative development process (flame war, silly code submission, amazing accomplishment)?
I'm not too good at 'keeping score' about such things. But, I do usually get a chuckle when someone decides that they've found the One True Way to do something and then they attempt to convince everyone else in the community that we all must comply with their demands. Probably the best example that comes to my mind for this is the recurring discussions about allowing C++ code into the kernel. C++ is better than C, right??
What's your advice for developers who want to get involved?
The best thing is to scratch your own itch! If you are experiencing a problem (perhaps a bug or just poor performance) then work on trying to fix it. You will have to read lots of code, exchange some emails, track down some information, do a lot of work, etc. But you will learn a lot, and it will probably be fun!
What do you listen to when you code?
I'm boring. I listen to a "news/talk" station on the radio.
What mailing list or IRC channel will people find you hanging out at? What conference(s)?