James Bottomley is #26 in our 30 Linux Developers in 30 Weeks series today. He shares with us what his "day job" involvs, why he challenges people on the SCSI mailing list, and why the IT department at Bell Labs finally let him give up his Windows machine for Linux.
What role do you play in the community and/or what subsystem(s) do you work on?
My main job is SCSI subsystem maintainer. I also have a sideline in obsolete and unloved architectures beginning with the NCR voyager system and which now sees me as maintainer of the parisc architecture.
Where do you get your paycheck?
Parallels. I'm CTO of Server Virtualization, so I have a day job which is connected to my kernel work (I help Parallels shepherd their container technology into the kernel) but which also has quite a wide range outside open source as well.
What part of the world do you live in? Why there?
London (that's in the UK, for those in the US who have a few copies floating around). Because my wife likes it and it's a much shorter trip to Moscow than when I lived in Chicago.
What are your favorite productivity tools for software development? What do you run on your desktop?
git and emacs for code development, I suppose. I use either Slitex or OpenOffice for slides (I do have a project to use beamer one day, I've just never got around to it). My desktop is openSUSE + Xfce
How did you get involved in Linux kernel development?
I'd been following it for a while as a graduate student at university. We used to by SPARC stations for about 10x the price of a PC and I figured if we bought 10 Linux systems for the price of one SPARC, I could have one (that was in 1993, so using the SlackWare 10 floppy install).
My first kernel patch was in the 0.99.15 days: Our distributed home environment used NFS and there was a Linux kernel NFS bug causing mounts to hang, which I fixed together with a colleague. Later I fixed the userspace kernel module loader to work with ELF to help the a.out to ELF transition. I've always run Linux on my desktop (since 1993), except for a couple of weeks at Bell Labs (which mandated Windows) where I crashed my Windows desktop so often that the SysAdmins agreed to let me install Linux if I'd just stop calling them. My first serious foray into kernel development was in 1998 when I ported Linux to a Voyager SMP system by rewriting the x86 Hardware Access Layer to work without APICs.
What keeps you interested in it?
The fact that there's always something interesting going on and there's always stuff outside my usual technical area that I can take an interest in (like Containers in the cloud or UEFI secure boot).
What's the most amused you've ever been by the collaborative development process (flame war, silly code submission, amazing accomplishment)?
The strength and weakness of the collaborative development process is that anyone can do it…even someone without a whole lot of experience (or even just common sense). To make people believe you, you just have to sound authoritative. I used to be amused by the amount of incorrect information expounded authoritatively by various people. However, since we had a near "cockup" (mistake/mess) on the SCSI list where a fledgling fibre channel driver almost got derailed by the author listening to one of these individuals, I've been much more vigilant about challenging them. I also have a slide in all my presentations on kernel development about how to identify individuals on mailing list to listen to and those to ignore.
What's your advice for developers who want to get involved?
Find a bug that annoys you and fix it. That's how a large portion of kernel developers actually got started. The key point is that it has to be something that matters to you. Finding something that matters to someone else is usually less likely to achieve good results because you won't have the necessary passion and enthusiasm for it (that's why I don't really believe in TODO lists ... if it really mattered to someone, it would be done).
What do you listen to when you code?
The sound of silence. I listen to BBC Radio 4 podcasts when doing mindless work (like applying git patches), but I find radio programming occupies too much of my concentration to be useful when I need to think about coding problems.
What mailing list or IRC channel will people find you hanging out at? What conference(s)?
#parisc and #storage on oftc plus the linux-scsi mailing list on Vger. I don't read LKML at all, so never send your SCSI patches only to it. I go to too many conferences and have been seriously considering cutting down for at least the past five years…as the number of conferences I go to has been going up…I think I need help.