Resume
Current Status

I'm not currently looking for work.

Note to recruiters: yes, this means you. I understand your job opportunity is really fascinating and you'd love to tell me about it, but please don't. I really do mean it when I say I'm not looking for work, and unless you're offering me the chance to be god-king of all creation, I'm not going to change my mind.

Formats

My resume is also available formatted as:

Resume
Professional Profile

Eight years experience designing, building, and debugging complex networked servers. Five years experience shipping production code to a variety of customers. Proficient with UNIX development at both user and kernel level, and comfortable with working under time pressure to meet changing customer requirements.

Experience

Apple Computer, Inc. - Software Engineer
Pittsburgh, PA (April 2006 - Present)

Part of the Productivity Engineering team inside the Applications division, building consumer productivity software in the iWork suite. Designed and implemented features and infrastructure components for the 1.0 release of Numbers in the iWork ’08 release.

Panasas, Inc. - Software Engineer
Pittsburgh, PA (February 2001 - March 2006)

Designed, implemented, and maintained cache coherency protocols for a high-performance distributed network filesystem, as well as handled various performance and stability projects for the Panasas ActiveScale File System (PanFS) server and DirectFLOW filesystem client products. Additional projects include profile-driven system analysis and tuning, increasing the system's scalability, improving crash recovery, implementing write-ahead metadata logging, and diagnosing and solving customer crashes and performance issues.

Parallel Data Lab - Research Programmer
Carnegie Mellon University, Pittsburgh, PA (February 1998 - February 2001)

Implemented a Linux kernel filesystem client for the EDRFS object-based networked filesystem, supported the EDRFS server, and developed test suites for the NASD object based disk prototype. Designed and implemented a memory-backed SCSI passthrough device in the FreeBSD kernel for storage system simulation and an iSCSI client and server for Linux and FreeBSD. Wrote tools for use in filesystem aging research and access pattern simulation, and performed general administrative tasks for the lab's computing environment.

School of Computer Science Research Computing Facility - Systems Programmer
Carnegie Mellon University, Pittsburgh, PA (September 1996 - February 1998)

Developed tools for administering the computing infrastructure at the School of Computer Science. Projects included building and maintaining a web interface to the SCS network database that allowed online queries and updates of network information, and designing a general Java interface to the SCS internal databases.

Computing Services Help Center - Phone and Email Consultant
Carnegie Mellon University, Pittsburgh, PA (October 1995 - September 1996)

Responsible for answering user questions about general computing issues and internal Carnegie Mellon configuration. Additional responsibilities included UNIX and Macintosh support and database maintenance.

Publications

NASD Scalable Storage Systems, Gibson, G.A., Nagle, D.F., Courtright II, W., Lanza, N., Mazaitis, P., Unangst, M., Zelenka, J., USENIX99, Extreme Linux Workshop, Monterey, CA, June 1999

Education

Carnegie Mellon University, Pittsburgh, PA
B.S. in Computer Science with a Minor in Creative Writing, 2002

Computing Experience

Programming

Extensive experience with ANSI C, and Perl. Experience with C++, Objective C, Java, and shell scripting (csh, sh, and derivatives). Extensive experience with the GNU development suite (gcc/g++, gdb, gprof). Familiar with debugging tools such as Purify, Lint, VTune, and Coverity.

Environments

Extensive user-level development experience with FreeBSD, Linux, and Solaris. Kernel development experience with FreeBSD and Linux. Some experience with Mac OS X Cocoa development.