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).
-
"Contract as Code as Contract: Using Rust to Unify Specification and Implementation". API Specifications Conference 2020 (with Adam Leventhal). (video)
-
"Industrial-Grade Node.js". NodeSummit 2015. (slides)
-
"ZFS in the Manta Storage System". ZFS Developer Summit 2014. (slides, video)
-
"Scaling the Unix Philosophy to Big Data". Surge 2013. (slides, video)
-
"Kartlytics: Applying Big Data Analytics to Mario Kart 64". (video)
-
"How Joyent Operates Node.js in Production". 140proof Hack, Deploy, Scale. (slides, video).
-
"Building a Real-Time Cloud Analytics Service with Node.js". Surge 2011. (slides, video)
I’ve given similar talks at NodeConfs, OSCONs, GoTo 2012, Fluent 2012, and Surge 2012.
Articles
-
Postmortem debugging in dynamic environments. Communications of the ACM. December, 2011. Vol. 54, No. 12.
-
Bringing Arbitrary Compute to Authoritative Data. Communications of the ACM. August, 2014. Vol. 57, No. 8.
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
-
Amateur radio (KK6ZBI)