30 Linux Kernel Developers in 30 Weeks: Glauber Costa

After a one-week hiatus due to catching our breath after LinuxCon Europe, we’re back with 30 Linux Kernel Developers in 30 Weeks. Glauber Costa takes up week #23 in the series as we make our way through meeting many of the world’s most talented software developers.

glauber costaName

Born Glauber Costa, more recently Lord Glommer I of Sealand, but people in the community interchangeably call me either just glauber or glommer, my lifelong nickname.

What role do you play in the community and/or what subsystem(s) do you work on?

My main role is to make sure everyone else is entertained and doesn’t take things too seriously. So I’m basically a clown.

I don’t actually know how to program. What I did was to kidnap one of those people from the community that get employed by big corps and disappear and keep him in my basement and making him work for me. This way, nobody would ever suspect me.

Me/he is currently working on containers technologies most of the time, focusing on resource control and isolation. I try to avoid saying this translates to “cgroups,” because I still want people to be friends with me. But ultimately, that is it. Over the last year, I have been focusing on the cgroup’s memory controller, trying to extend it so it will also account all sorts of kernel memory.

The company that employs me, Parallels, has a very mature container solution that is broadly used in production (OpenVZ). It runs on a fork of the Linux Kernel and our goal is to push all that technology into the upstream kernel. I basically came to add to that effort.

Also, I had relatively big involvement with KVM in the past, on behalf of my previous employer.

Where do you get your paycheck?

In the bank.

What part of the world do you live in? Why there?

I was born in Santos, Brazil, but I am currently living in Moscow, Russia, which is about 10 seconds away from Parallels’ office. About the “why there” part, whenever the winter approaches – like now – I actually ask myself the same question!

What are your favorite productivity tools for software development?

As for the editor, I use vim, and that’s it. And I don’t even know all the fancy tricks it has to offer. There are those who call me crazy for that, but I really think it doesn’t matter that much at all. glauber beer

People are so heatedly vocal about the tools: “It will save you some seconds, that will sum up to some hours by the end of the month.” This is great and all, and if someone teaches me a vim trick that I can remember, I start using it – I am not *against* it, or anything.

But I think the real productivity gains are not there. They are on drawing boards, papers, good communication, and other things like that that can save you days or months instead. So that is what I try to focus on.

For the rest of the work, I think I am pretty much standard. I am very big fan of git – has been since day0, but there are still some tasks I feel more comfortable with by using quilt.

What do you run on your desktop?

I’ve been running Fedora for many years now. Right now, this is F17. I don’t really care too much about whatever goes in the desktop. I don’t even change my wallpaper these days. Whatever Fedora ships, I use it.

How did you get involved in Linux kernel development?

I started university around 2000, and I was actually not studying computer science. I was in Mechanical Engineering (to be fair, “studying” also doesn’t describe what I was doing there). I eventually took a programming course and was euphoric that I could write a program to accomplish the challenging and utterly important task of calculating when Easter would be, and that was about it.

Around one year later, I took another CS course, on data structures, and my then neighbor Martim Carbone (currently at VMware – how ironic) introduced me to Linux. He told me that by using it, I would have an easier time doing my programming exercises. I just loved it, and some months later he told me I could just read the source code of everything, should I want.

I didn’t have the source code packages installed; I didn’t even know precisely what that was, so I believed the header files was all there was. I chdir’d to /usr/include/linux, and started reading it. I remember I didn’t understand anything *at all* that was there, but I felt enthusiastic like never before. It might have been the first case in history about someone baffled at a constant definition. At that moment, I knew what I wanted to do for the foreseeable future.

I started reading every book I could. I remember having read “Understanding the Linux Kernel” (still 2.4 based), “Linux Kernel Development” (when 2.6 was around the corner) and also a pretty comprehensive book about memory management internals by Mel Gorman, whose name I honestly don’t remember. I really devoured all of that.

At some point, after failing my Strength of Materials course for the 5th time, I decided I had enough and it was time to turn my hobby into my profession. In parallel with that, I also started working for IBM’s LTC in Brazil in 2004 and started to direct all my actions towards this goal.

What keeps you interested in it?

The feeling that I still have things to do in here. I could not quit even if I wanted to, because I don’t have a feeling of closure. Maybe some day I will, maybe I won’t.

What’s the most amused you’ve ever been by the collaborative development process (flame war, silly code submission, amazing accomplishment)?

This is a very interesting question. Hard to bring them all back to mind, but I think that if I had to choose, I’d choose all the distress with the copyright holder of bitkeeper and how it led to the development of git.

I particularly like that story, because it shows a lot of the strengths of our community: how loose is the illusion of control one may get by binding someone to a license and how everything can, in the end, be so drastically changed by the actions of people who are not planning for any big picture out of this anyway.

What’s your advice for developers who want to get involved?

Do it if you want it, for as long as you want it.

What do you listen to when you code?

When I code, I listen to Queen. When I don’t code, I listen to Queen. When I both code and not code, I listen to Queen. And if I get tired of it, then I listen to Freddie’s solo career for a change.

What mailing list or IRC channel will people find you hanging out at? What conference(s)?

I usually follow linux-mm closely, but not many others. I am glommer at freenode and oftc, but these days I am not the proud regular I used to be.

As for conferences, this is something I absolutely love. I would go to all of them if I could. I really love talking, both to my friends and with audiences. I try to deliver speeches in every conference I travel to. It helps creating in people’s mind the illusion that I know what I’m talking about.