As of August 18, I will be Red Hat’s newest file systems developer! I’m working part-time for Ric Wheeler (if you don’t know Ric yet, you’re missing out). Possible projects, depending on what is most useful to Red Hat’s customers:
* Merge e2fsck parallelization work. I wrote this on contract for Ric Wheeler when he was at EMC, but larger economic realities forced the end of this contract before it was quite done. Ted T’so is the ultimate arbiter, of course, but I think it just needs a little touching-up before it’s mergable as a non-default option. The technique I use, which can be described as active buffer cache management, could replace DIO/AIO for several applications with a little OS support.
* General ext4 work. ext4 is very close to shipping, but I hope to be at Red Hat for the final frenzy of touch-ups before Red Hat puts it in a release.
* Improve btrfs check and repair. Btrfs already has a rudimentary file system checker, but I’d like to implement incremental online check and repair, my personal holy grail.
Things I won’t be working on:
* Chunkfs. Chunkfs is a particular instance of the general repair-driven file system design principles I’ve been advocating. I wrote a prototype, both to convince myself that it would work and to give a concrete example for other file systems developers, but the experience convinced me that you really need to build these features in from the very beginning. If btrfs wasn’t on the horizon, the layered file system approach might be worth implementing. I do need to write up a summary of what I learned working on chunkfs and in particular collect in one place the various measurements I made showing that the idea will work.
* GFS2, cachefs, NFS, etc. I’m just not that into network file systems.
And I have to admit, for all that I thought I was a blasé and worldly kernel developer, I am a little excited about the idea of working for Red Hat in and of itself. Back when I was making 6 floppies’ worth of drivers so I could install Red Hat, I would have laughed if you’d told me I would actually work for Red Hat someday.
Q: I thought you hated having a real job. Why stop consulting?
A: Honestly? The number one reason is that health insurance is impossible to get in the U.S. if you’re an independent consultant. Europeans, Australians, and other residents of sane countries are permitted to feel smug at this point.
Q: Why part-time?
A: I want time to work on my writing – science writing, most likely. Expect more regular articles in LWN.
Q: But distro work sucks, you’re going to hate it. Packaging, bug fixes, support, etc…
A: Actually, I was a one-woman distro back in 2001-2002, doing a Yellow Dog-derived distro for a small embedded company. I liked it, and I did everything – customer support, building RPMs, burning CDs, and fixing installer bugs, in addition to actually writing kernel code. I only left because no one there knew more than me about operating systems (and I didn’t know very much about operating systems).
Q: So, would you recommend consulting?
A: I’d recommend it for paranoid, ambitious, meticulous, compulsive people with a wide variety of interests and the ability to put with a lot of annoying extraneous crap. It can be pretty awesome – I write this overlooking the ocean in Hawaii – but it’s a hell of a lot of work, at least in the beginning.