I am a technologist who has had the opportunity to contribute to a number of areas, with particular focus around developer tools and environmental tech.
Here's a sample of my work:
I am a technologist who has had the opportunity to contribute to a number of areas, with particular focus around developer tools and environmental tech.
Here's a sample of my work:
HeadSpin runs user tests at scale on browsers and mobile devices on our own worldwide-distributed hardware infrastructure. Our analysis platform extracts intelligence from captured test data to help teams improve the quality of their apps for a global audience. I joined HeadSpin as a founding engineer and played major roles in developing the product and team.
Simtable is a wildfire simulation platform used to train fire fighters and educate the public. I designed and built the Simtable UI, which is projected into a physical sandbox and controlled using a laser pointer. I implemented binary coded structured light for accurate pointing and simulation over hand-sculpted terrain.
Featured on 60 Minutes • Table Setup Video (UI/laser pointer around 5:05)
Skate is a DoE-funded project that uses computer vision to digitize analog seismograms captured during the cold war. Benny Lichtner and I designed and built the seismogram editor that lets you view and manually correct the data, with advice from Andy Bartlett and Stephen Guerin.
Globe is a research social network for land scientists, built by University of Maryland. I co-designed and built the v1 client app for Globe in collaboration with Matt Schmill, Erle Ellis, others from UMBC, and The Other Firm.
As a DoE subcontractor, I worked with Sitka to build a geospatial/maps architecture to track environmental restoration projects in the Columbia River Estuary. These projects offset the negative environmental impact of hydropower.
I developed a text editor UI that conceptualizes text diffs (e.g., git branches) as stacked layers a la Photoshop, that you can turn on and off in the UI.
David Notkin and I created Twinning, a program transformation system that lets you specify transformations by example. I showed how a Facebook client app can be rapidly built with Twinning by largely reusing an existing Twitter client app.
I interned on the Sage project at Microsoft, working on extending whitebox fuzzing to distributed systems, with Michael Y. Levin and Patrice Godefroid.
I worked with Dan Grossman and Craig Chambers to develop a type theory that explains what it means for a C type to be portable, for a subset of C. Dan and I also built an extension for C that spares you from writing code N times for each of N target platforms. Instead, you write the code once and the other N-1 code variants are generated.
While at Portland State, I built a generational garbage collector for a functional logic language with breadth-first (parallel) search while advised by Andrew Tolmach. I also implemented monadic IO in a VM for a Haskell-like functional logic language in collaboration with Sergio Antoy.