I graduated in 1991 from the U of C with a BSc in Electrical Engineering and a Minor in Computer Science. Between 1991 and 1994, I worked in Calgary for IBM. One of the highlights of this period was working on the Victoria Commonwealth Games Install Team for IBM, sponsor of information systems to the games.

I started graduate studies at the University of Calgary. in the fall of 1994. While I was in graduate studies, my research interests were in video compression, computer graphics, and distributed computing. I worked on a distributed processing approach to fractal block coding of video sequences. During this time I was also very interested in ray-tracing.

For a few years I was back working at IBM as an AIX Services Specialist, contracting to customers for installation and maintenance of RS/6000 AIX systems and SP2 systems. There's nothing like working on a cluster with 100 CPUs, 32 GB of RAM, and 600GB+ of disk... [in 1997 that is...] Because of my AIX background I started playing with LVM for Linux and as a result I developed online ext2 resizer so you can grow a filesystem without unmounting it! This was later merged into e2fsprogs, and I've continued to work on that project.

After a brief stint working for a small startup called Stelias Computing doing filesystem development work, Stelias merged into Turbolinux, one of the "big 4" Linux distros of the time (along with Red Hat, SuSE, and Mandrake). During this time my main development work was in enterprise storage systems, including a very early prototype of Lustre, and InterMezzo - a replicating network filesystem. Stelias also worked on an ext3-based snapshot filesystem for Linux. This gave me lots of Linux kernel filesystem development experience including a lot of the early development on the ext3 journalled filesystem.

For many years now I'm back working on Linux filesystems and storage. Initially at Cluster File Systems (successor of Stelias Computing), which was again developing the Object Based Storage technology I was working on at Stelias. This grew into an advanced distributed storage system called Lustre, which is designed to scale to tens of thousands of client nodes and many petabytes (millions of gigabytes) of storage. Lustre is running on some very BIG machines, usually about 70 of the 100 largest computers inthe world, including 7 of the top 10 at any given time, which always presents new and interesting challenges.

In October of 2007, Cluster File Systems became part of Sun Microsystems. Virtually all of the Lustre developers (including myself) moved over to Sun, and have continued working on Lustre. In March of 2010, Sun in turn was bought out by Oracle.

After a few months at Oracle, I decided that this wasn't a good fit for me, and joined the new Lustre startup Whamcloud, which was once again fun to work for and had the small company feel of ClusterFS. The focus continues to be on very large computers, including Exascale systems with truly astounding storage requirements - 200-300 TB/s.

After being in business for only two years, Whamcloud was bought by Intel as part of their Exascale strategy.

In a spinoff from my Lustre development work, the advanced filesystem features CFS developed for ext3 have been incorporated into the official Linux kernel as part of the ext4 filesystem since the 2.6.27 release. This allows the high-performance enhancements to be used by the entire Linux community. The ext4 work was a joint effort by CFS/Sun, IBM, Red Hat, Bull, and NEC, among others.

At one point I also developed a small utility library + tool, called blkid for identifying the type of filesystem (or other content like swap or partition labels) of a partition/disk. It will allow you to locate devices by LABEL or UUID (if the content supports this), and also can give you some basic data about some filesystems like total size and free space. It is designed to remove the proliferation of duplicate code in fsck, mount, dump, etc. This code was added to e2fsprogs v1.33, and was later moved to util-linux-ng because it is not really ext2/3/4-specific.

On July 21, 2000 my first son Maximilian was born, and there are a few photos online.

On May 2, 2002 my daughter Anna was born, and I put some photos toghether (thanks to my Dad for the use of his digital Camera). Note that it is somewhat slow to do web pages with a baby in one hand - but it is possible.

April 16, 2005 saw the arrival of my second son Frederick, pictures here (we have our own digital camera now ;-).

I live in Calgary, Alberta, Canada, near the spectacular Rocky Mountains.

I am one of the contributing authors to the Portable Network Graphics (PNG) specification, as well as one of the contributing authors and the former maintainer of the reference PNG library, libpng. PNG is a lossless raster image format designed to replace GIF because of its technical shortcomings and patent encumbrance. PNG is designed to be simple, flexible, extensible without sacrificing compatibility, and highly compressed without losing image content. The ownership of the PNG specification has been transferred to the World Wide Web Consortium (W3C) for consideration as the standard WWW raster image format. It is also an ISO standard image format. Virtually all graphics applications and WWW browsers now support PNG images.

I have also created a popular Linux Logo which includes, of course, our favourite Penguin Tux.

Last modified: Fri 15 Oct 2010 11:39:02 MDT