I am a freelance engineer, researcher, and maker who loves building
reliable systems that solve real-world problems in creative and efficient
ways. I have experience in robotics, aerospace, manufacturing, and consumer
electronics, and am always interested in expanding my horizons. I'm looking
for projects at the intersection of computing and the physical world; if
you're interested in what I’ve been working on in my spare time, take a
look at my recent projects.
San Francisco, CA, 2016 – present
Senior Engineering Consultant
- Built a system that can take depth images of a scene, determine
what in the scene is measurable by a surveying drone, and then
generate paths for the autonomous drone to measure those
- Implemented many state-of-the-art point-set algorithms for
understanding unstructured scene data in a combination of modern
C++ and CUDA.
- Developed novel geometric algorithms, including an algorithm to
fit a set of points to a grid with cylindrical topology and
extensions to a point-set registration algorithm that allow it
to perform better in the presence of minimal overlap.
- Created a position and attitude estimation system capable of
performing sensor fusion and loop-closing SLAM tasks at 50Hz
using the GTSAM factor graph library.
- Migrated a large C++ codebase with significant external
dependencies to the Bazel build system and introduced a
continuous integration workflow, leading to significantly fewer
broken builds and lower engineer frustration.
San Francisco, CA, 2016 - present
San Francisco, CA, 2014 – 2016
Senior Computational Geometer
- Built a novel system in Python, C++, Cython and C to calculate
toolpaths for CNC mills given a 3D model.
- Developed software tools and manual procedures to ensure the safe
operation of third-party robotic systems.
- Developed novel geometric algorithms for toolpath generation,
including robust algorithms for planar curve offsets,
arbitrary curve interpolation, and optimal material removal.
- Worked closely with mechanical engineers and expert machinists to
determine system requirements and to develop a deep understanding
of CNC manufacturing principles.
- Led a team of 3 software engineers building toolpath systems.
- Gained deep understanding of the Parasolid geometry kernel.
- Purchased, installed, and maintained on-premises servers and
networking equipment for toolpath and simulation systems.
Mountain View, CA, 2013 – 2014
- Technical lead for — and primary contributor to — the
Android Wear Android app.
- Created and led media control, fitness, and retail mode systems on
the watch, and made significant contributions to the notification
- Made a number of userspace changes in Android to allow the entire
Android framework and Android apps to run with as little as 128MB of
RAM and on sub-GHz low-power CPUs.
- Co-created a
for gesture recognition on extremely-low-power dedicated
- Make a number of improvements to the Android framework, including
improving support for notification listeners and a modification to the
Android window manager to allow windows to be swiped away.
- Responsible for all Wear devices displayed at the Google I/O 2014
conference, which included inventory and management of 300 Wear devices,
and worked on the conference floor explaining Wear usage and APIs to the
Android at Home, Google
Mountain View, CA, 2013
- Worked on a team developing embedded devices for home control.
- Implemented a remote-input system capable of remotely controlling a
hardware device over a wireless network with sub-20ms input latency.
- Contributed to a network stack that bridged a TCP/IP network and a
Zigbee-esque mesh network.
- Developed a home-control Android app.
Sydney, Australia, 2012 – 2013
- Joined the team building the Search
API for Google App Engine.
- Responsible for the implementation of the Search API on dev_appserver
for both Python and Java.
- Helped to design both the Python and Java APIs.
- Contributed to the code health of the API by increasing test
coverage and testability.
New York, NY, 2012
- Working with Yotam Gingold and advised by Eitan Grinspun, created
an iPad app for human-friendly 3D modelling using sketches and
New York, NY, 2011 – 2012
- Graded, tutored, and taught some lectures for Computer Science
Theory and Programming in Matlab.
- Recipient of the Andrew P. Kosoresow Memorial Award for
Excellence in Teaching, TA-ing and Service.
New York, NY, 2009 – 2012
Technical Director, Lighting Designer, and Technician
- Light and sound design and theater management for up to 6 events per
week, working directly with clients to determine specifications,
then implementing those specifications in a very constrained time
- On-staff at multiple theaters, and worked as a freelancer on dozens
of shows and events.
New York, NY, 2010, 2011
Software Engineering Intern
Education and Professional Organizations
2015 - present
People Reluctant to Kill for an Abstraction
1990 - present
New York, NY, 2008 – 2012
Bachelor of Science in Computer Science
- GPA of 3.61, completed 137 of 124 credits
- Received Dean’s List honors in 6 of 8 semesters
Manufacturing and fabrication, physical simulation, computer graphics
and rendering technology, spaceflight and satellite technology, light
design, theoretical computer science, programming languages, cooking,
wood- and metal-working