Kernel developer Johannes Berg maintains wireless code in the kernel as well as the iwlwifi driver. Like many developers, he got involved with Linux to fix a hardware problem with his computer and never looked back. Catch him next week at LinuxCon North America, where he'll be speaking about "Design Challenges and the Future of the Linux Wireless Stack." The interview is part of a weekly series of profiles that can all be read at our 30 Linux Kernel Developers in 30 Weeks site.
What role do you play in the community and/or what subsystem(s) do you work on?
For most of my “Linux career” I’ve worked on wireless (802.11) and I maintain most of the generic wireless code in the kernel in addition to the iwlwifi driver. Sometimes I do related work in various other subsystems where they interact with wireless or when something there irks me. In the past I’ve also done some powerpc work (as a hobby), for example I implemented hibernation on 64-bit powerpc. (But don’t ask me if it still works!)
Where do you get your paycheck?
What part of the world do you live in? Why there?
In Detmold, Germany. I grew up around here and like the area, but the more pragmatic reason is that I could choose and my wife works here.
What are your favorite productivity tools for software development? What do you run on your desktop?
I’m going to keep the desktop part a secret lest I be regarded insane by the rest of the kernel community, but mostly I really just run a web browser, an email client and a lot of terminals for everything else. As for productivity tools, I couldn’t live without my favorite editor “joe” and don’t use much more than the standard tools for kernel development: the editor, git, sparse, smatch and spatch; for my work on wireless I need wireshark; and in the last few years I’ve come to love trace-cmd because it allows people to collect a lot of debug data in the field that I can then analyze offline.
How did you get involved in Linux kernel development?
That’s a long story, but it boils down to having some hardware that didn’t work. In my particular case, it was the Broadcom wireless in a 2005-model PowerBook.
What keeps you interested in it?
There’s a new challenge every day and the solutions aren’t always obvious, which satisfies my creative side. Plus, I love doing work that actually impacts a lot of people. Now, I hear most about it when there’s a negative impact, but I’m sure that it can’t be all bad. :)
What's the most amused you've ever been by the collaborative development process (flame war, silly code submission, amazing accomplishment)?
Some of the April Fools’ patch submissions I’ve seen were really creative!
What's your advice for developers who want to get involved?
Try to follow things for a while and try to get a feeling for how people interact with each other. If somebody is yelling at you but everyone else mostly seems to ignore them, then maybe you should, too. But if it’s the subsystem maintainer you’re dependent on you probably shouldn’t! There’s a social structure in the community that can be hard to deduce, but if you try you’ll probably be happier.
What mailing list or IRC channel will people find you hanging out at? What conference(s)?
I’ve stopped subscribing to many mailing lists, so it’s really just the kernel wireless list that I follow closely. There’s a #linux-wireless channel that I hang out on, and a few more that I don’t really follow. Conferences are more or less random. I’ll be speaking at LinuxCon North America but will have to skip LinuxCon Europe even though there’s this year’s wireless summit attached to it.
View Detmold, Germany in a larger map