This is the fourth profile in our 30-week series that features a different Linux kernel developer each week. Last week we featured Linux kernel xHCI driver maintainer Sarah Sharp. You can see all the profiles in the series on our Special Features page. We aim to help illustrate how these developers do their work and provide important insight on how to work with them and what makes them tick.
What role do you play in the community and/or what subsystem(s) do you work on?
I am currently co-maintaining two subsystems of the Linux kernel: I2C (core support of I2C, SMBus and related protocols, plus a dozen SMBus controller drivers for x86 machines) and hwmon (hardware health monitoring, e.g. fan speed and temperatures.)
Originally I was maintaining both all by myself but the workload has increased in the past years beyond what I could sanely deal with, so I had to find co-maintainers. It works rather well now.
I am also contributing to a few other areas, for example, graphics card drivers V4L or DVB.
Where do you get your paycheck?
Technically, from Novell SARL, France. From a logical perspective, from Suse, business unit of The Attachmate Group.
What part of the world do you live in? Why there?
I live in France, more specifically in Mérignac, next to Bordeaux, in the southwest of France.
France simply because I was born there. Mérignac because... well actually this is a relatively long but interesting story. When my spouse-to-be and myself left high school in 2001-2002, we had a hard time finding our first jobs. The post-Sept. 11 era wasn't an easy one for beginners, as most tech companies stopped new hires for a moment. While we originally did not want to live in Paris, after almost one year of unemployment we had to make up our minds and accept to start there.
We ended up spending 3 years in Paris, from 2003 to 2006, working for various IT consulting companies. Most missions were uninteresting and we wasted a lot of time in public transportation, plus a lot of money in flat rental. But at least we gained experience. In late 2005, I sent a spontaneous application to both Red Hat and Suse. Got a positive answer from Suse, and started working for them in April 2006, from home.
Meanwhile, my spouse negotiated a mission anywhere in the south half of France. This "anywhere" ended up being Bordeaux. As I had been working from home for 4 months with no trouble, I was allowed to follow her there. We chose Mérignac because it is Bordeaux's airport, so very convenient when I must fly to Nürnberg or Prague to meet my colleagues.
Since then, we've had two children. My spouse interrupted her career to raise them. We bought a larger flat three floors above the one we were originally renting. This is a great place to raise children, we have no intention to move.
What are your favorite productivity tools for software development?
I'm a man of simple tastes. A terminal, make, gcc, make me happy. Quilt for patch management, Git or Subversion for source code management. I'm using Nedit as my text editor of choice, which is rather uncommon.
What do you run on your desktop?
Operating systems: SLED for work and openSUSE on my personal machine.
Desktop environments: I have changed many times. I gave KDE 3 a try when joining Suse. But then the migration to KDE 4 broke my keyboard shortcuts, so I switched to Gnome 2. My personal machine had been running Xfce for a while, recently I gave a try to Gnome 3, but I'll most certainly revert to Xfce soon as Gnome 3 eats more graphical resources than my low-end graphics card can bear.
As for applications, Firefox is my browser, Claws is my e-mail client for development, and I manage my music with MPD.
How did you get involved in Linux kernel development?
When I switched from Windows to Linux in 2001, Linux wouldn't tell me the temperature of my CPU nor the speed of the CPU fan. I wanted to know that, so I joined the lm-sensors project and offered my help for testing. These guys were nice, I stayed with them. In 2005 (IIRC) our code was merged into the kernel, in the form of i2c and hwmon subsystems, and I helped with that. At that time, the historical members of the lm-sensors project went away so I became the de-facto leader. And I still am today.
What keeps you interested in it?
Two aspects: the technical challenge, and helping real people solve real problems. A new technical challenge shows up every month. A new piece of hardware to support, possibly with some unexpected feature. A new coding standard in the kernel, to which existing code should be aligned. A new API that we can convert a hundred drivers to for some size or performance benefit, etc. It never ends.
Likewise, people come to us every week with a problem to solve. Sometimes very simple, sometimes very complex. It always feels good when I can actually help. Oh, and of course, now that I am being paid for that, this is one more, very good reason to keep doing it. :)
What's the most amused you've ever been by the collaborative development process (flame war, silly code submission, amazing accomplishment)?
Over time, I learned to stay away from flame wars. I have found funnier ways to waste my own time if I so desire. ;)
Silly code submissions, I've seen a few, but very, very little compared to what I had to suffer in my previous closed-source jobs. This is what's really amazing with open-source projects. You do not necessarily agree with all submissions, but they are rarely fundamentally silly.
Best accomplishments aren't breakthroughs in our area. I can't think of a single thing that truly impressed me at first sight. This is because we aren't marketing people. Instead, we are tireless ants. What's amazing isn't what I'll do today, but the fact that I did it for 10 years by now, and will do it for another 10 years, while receiving comparatively very little praise for it. What's amazing is that 10 years ago we did not give up when Linux was so far away from its competitors in pretty much every area. Progress is slow but it is steady.
Reminds me of the flavor text on one of the Magic game cards. It reads:
"The plants said, 'We will fight the stone with root and stem and seed. We are patient. We will win.'"
What's your advice for developers who want to get involved?
Be patient and listen. I did not at first, and I am glad Greg Kroah-Hartman taught me.
What do you listen to when you code?
I have relatively broad musical tastes. It depends of the combination of my mood and what I am currently trying to achieve. Writing brand new code is different from debugging or reviewing others' code.
It ranges from classical (Bach, Mendelssohn, Saint-Saëns) to various flavors of metal (Dream Theater, Ayreon, Nightwish). But I also enjoy listening to more common international (Radiohead, Muse, The Corrs) or French pop/rock (Goldman, Souchon, Voulzy.) And I can even dive into oldies sometimes (Bob Dylan), or enjoy discovering new talents (most recently: Nikki Yanofsky.)
What mailing list or IRC channel will people find you hanging out at? What conference(s)?
I used to be very present on IRC, not so much these days, as I found it could easily distract me. Working at home with children around, I don't need another source of distraction. ;) When I connect to IRC, I'm on freenode: #linux-sensors, #v4l and #linuxtv. Sometimes #ffmpeg or #x264 when I have video encoding issues.
I am not a regular attendee to a specific conference, it really depends on the opportunities and locations. I went to Sucon in 2004, Guadec in 2005, LGM and OLS in 2006, Kernel Summit in 2008 and 2011, plus the private Suse Labs conference several times.