I'm a software engineer at Microsoft interested in cloud technologies, distributed computing and programming languages. I'm currently working on making WebAssembly (commonly referred to as "WASM") run very well in the cloud. Beyond WASM, some of the technologies I currently use most are Rust, Go, and Kubernetes.
I have spoken at conferences extensively on a wide variety of topics to various audiences, and have served as program chair at one of the largest conferences of its kind in the world.
I am, or have been, involved with several major projects as well, including the following recent ones:
Hyperlight: I co-lead development on a Microsoft-internal project called Hyperlight. This project implements Micro-VMs -- a new type of virtual machine that provides much lower startup latency and smaller memory footprint than traditional VMs. Learn more about this project in Mark Russinovich's Keynote at Microsoft Build 2023.
The KEDA HTTP Addon: I conceived and built this project to bring the ability to autoscale HTTP services on Kubernetes using KEDA. You can find out more about it at github.com/kedacore/http-add-on. I have stepped away from everyday work on this project to focus more on WASM technologies.
Athens: I'm a co-creator and core maintainer of the Athens project. Athens is the largest, most widely used open source server for Go dependency management that you can host and run yourself.
Go in 5 Minutes: I produced Go in 5 Minutes, a popular series of short screencasts with tutorials on Go.
Modules in 5 Minutes: I wrote a quick reference for how modules work in Go: Modules in 5 Minutes
GopherCon: I was the program chair of GopherCon, which is the largest Go conference in the world.
Kubernetes SIG-Service-Catalog: I am an emeritus chair of the Kubernetes SIG-Service-Catalog group.
Additional professional history
In my 15+ years in the fields of computer science and software engineering, I've worked in many different roles. Below is some additional work I've done in these roles, beyond the projects listed above.
- I built a video aggregation system for capturing and publishing university lectures. We attached Mac Minis with webcams to carts and rolled them in and out of lecture halls.
- I was a C++ / Cocoa engineer at Microsoft on the Office for Mac team. My team and I figured out how to run (and ship!) lots of the code from Windows Office on a Mac. I worked on the Entourage product, which has since evolved into Outlook for Mac
- I built a distributed log aggregation system with Scribe. It transferred log data from edge locations and app servers, normalized it, and forwarded it to a data warehouse
- I wrote Newman, the first REST client library for Scala. It takes prior art from Scalaz and other functional programming concepts and presents them as a consistent API. The original codebase disappeared, but I forked it from a backup on my GitHub organization
- I helped build an untrusted code execution platform on top of the JVM. It was similar to a modern "containers as a service" product, but just for JVM languages. We used several JVM features to constrain resources and provide jails
- I wrote one of the first Java APIs in the Scala language
- I designed an HTTP-based streaming RPC protocol and write a functional (as in functional programming) server implementation using the Twitter Finagle core primitives.
- I helped develop Helm, the first and most widely-used package management system for Kubernetes
- I co-led the development of one of the first platform-as-a-service products built on Kubernetes
Around the Web
You can also find me on LinkedIn and GitHub.