About me

I’m a software engineer in the San Francisco bay area. I write about my work, side projects, and software in general. I enjoy writing robust code, especially at the bedrock of a system. I love Rust, C, and Unix. I try to use the right tools for the job.

Talks

Probably the shortest, most interesting talk I’ve given was a lightning talk at Surge 2015 on Manta’s Bad Day (an outage story).

I’ve given similar talks at NodeConfs, OSCONs, GoTo 2012, Fluent 2012, and Surge 2012.

Articles

Work at Oxide

I’m an engineer at Oxide Computer Company, where we’re building a rack-scale computer for on-premises deployments. I’ve been learning Rust (among many other things!) and developing Dropshot, a general-purpose crate for exposing REST APIs from Rust programs.

Work at Joyent (2010 - 2019)

I joined Joyent in November, 2010 to work on tools for observing systems in the cloud. Our Cloud Analytics tool collected and presented real-time and historical performance data for applications deployed in the Joyent Cloud. We built this for application developers and cloud operators alike. Bryan Cantrill and I spoke at Surge 2011 about building this system (slides, video).

I built several tools for working with Node.js in production, including postmortem debugging from core files, runtime profiling, and shrinkwrapping packages. I spoke about these a lot, probably best summarized in "Industrial-Grade Node.js" at NodeSummit 2015 (slides, video).

I built Marlin, the system within Manta that’s responsible for executing users' compute jobs. This was a big learning experience about distributed systems, databases, and extending principles of operating systems higher in the stack. Mark Cavage and I spoke about building Manta at Surge 2013 (slides, video). I also spoke about our use of ZFS in Manta at the ZFS Developer Summit in 2014 (slides, video).

After Joyent’s aquisition by Samsung in 2016, I led the engineering team in scaling up Manta over 200x in terms of storage and throughput.

Work at Fishworks (2007 - 2010)

Before joining Joyent, I worked at Sun (later Oracle) on the Fishworks engineering team. I joined fresh out of college to work on what became the Sun Storage 7000 Unified Storage appliance, now called the ZFS Storage Appliance. The project delivered a low-cost, highly reliable, high-performance enterprise network storage (NAS) appliance based on Solaris, as well as an appliance kit for quickly developing other types of special-purpose systems with common features like a web interface, streamlined configuration, fault management, alerts, remote support, and monitoring. My work on the team spanned a variety of areas including:

  • remote replication: zfs-based replication of user data and configuration to other systems for disaster recovery and data distribution

  • design of Flash devices (and their firmware), specifically how they interact with the rest of the system, with particular focus on performance and fault management

  • phone home features

  • RAS (reliability, availability, serviceability) features, including support bundles (but not upgrade — I just blogged about that)

  • alerting and general fault management

  • HTTP/WebDAV protocol integration

  • integration with the Solaris NDMP server for participation in remotely-managed backups

  • automated testing infrastructure

  • general enhancements and bug fixes in the Javascript-based web interface, our native system management daemon, system libraries, and the OS kernel

I can hardly even begin to describe how much I learned from my experience at Fishworks, both technically and personally.

Internships

In 2005 I interned at Google with the AdWords Frontend Team, working on the email system and automated testing. In 2006 I interned at Sun with the Solaris kernel team, where I worked on event ports and signals, contributing the original event port implementation for libevent.

Brown

I graduated from Brown University concentrating in computer science. While there, I worked on a bunch of projects, including Mocha, a course browser and scheduler used by most undergrads by the time I graduated. I was an undergraduate TA, head TA, Sunlab consultant, and meta TA.

Other interests