Linux kernel developer Arnd Bergmann is interviewed for this week's 30 Linux Kernel Developers in 30 Weeks profile. Bergmann shares with us his focus areas at the moment as well as some specific advice for newbies.
What role do you play in the community and/or what subsystem(s) do you work on?
I am co-maintaining the arm-soc kernel tree together with Olof Johansson. We pick up patches from dozens of ARM subarchitecture maintainers and consolidate patches for the merge window to send them upstream to Linus Torvalds. This nowadays amounts to about 1000 patches for each merge window.
I also review all new architecture ports submitted for inclusion into Linux, and I keep some watch over the drivers/char, drivers/misc and include/asm-generic directories in the kernel.
Where do you get your paycheck?
I work for IBM Deutschland Research & Development in Böblingen, which lets me work full time on the nonprofit Linaro project through an agreement with the IBM Linux Technology Center and IBM Microelectronics.
What part of the world do you live in? Why there?
I moved to southwest Germany for my job at IBM a little over ten years ago, when this was one of the few places in my home country that let me work on the Linux kernel.
What are your favorite productivity tools for software development? What do you run on your desktop?
I do almost all of my work using git and vim. I also use a fast x86 workstation for cross-building ARM kernels. I run Kubuntu on my desktop but have been thinking for a while about moving on to XFCE4 once I find a way to migrate my email setup away from kmail 1.12.
How did you get involved in Linux kernel development?
I started out as a Linux user with lots of unusual hardware in the late 90s that required kernel modifications to run. I kept sending mostly bug fixes through my time at university until I learned about the concept of actually getting paid to do the same things I did as a hobby.
What keeps you interested in it?
I can't imagine doing anything else for a living after having looked into most kernel subsystems at some point over the last 15 years.
One of the best things about my work is that all the good work stays around, even if I change jobs or a project gets shut down.
What's the most amused you've ever been by the collaborative development process (flame war, silly code submission, amazing accomplishment)?
I once reviewed a submission for a new architecture that was being proposed for inclusion. I told the author that those things need a lot of review cycles over months and listed about a hundred things that were wrong with it. A week later the developer came back with a new version that fixed all those issues and the code was accepted in the next merge window.
What's your advice for developers who want to get involved?
Read a lot of code and code reviews from other people that are doing good work. When writing your own code or reviewing patches, think about how they would have done it.
For a first contribution, start with something useful and small like an obvious bug fix. A lot of bugs can be found by using automated tools that are listed in the kernel documentation.
What do you listen to when you code?
What mailing list or IRC channel will people find you hanging out at? What conference(s)?