2018 – current
Java, C++, OpenGL, Houdini, ImGui, Processing
- Wrote generative volumetric animations for art installations
and music performances seen by millions of audience members.
- Worked directly with artists and designers to design stage elements
for a high-profile world tour.
- Led a team of software engineers to create an
authoring environment for 3D generative content.
- Architected a new frontend for Symmetry's high-performance
LED control software, using modern OpenGL and an
immediate-mode UI paradigm.
Stealth-mode medical startup
2017 – 2018
C++, CGAL, vcglib, WebGL, Bazel
- Created a web-based CAD system to assist medical practitioners
in designing prescription medical devices.
- Implemented a number of cutting-edge geometry algorithms for
3D medical data analysis.
2017 – 2018
C++, ImGui, AVR, CMake
- Developed a robot controller to take data from a
brain-computer interface and translate it into robot motion,
allowing users with physical disabilities to complete
grasping tasks with a robot arm using their mind.
- Designed a miniature USB sensor package that allowed for
real-time data collection from an infrared proximity and
location sensor, then manufactured the PCB and integrated it
into the robot arm.
- Created a Linux GUI that allowed medical technicians to
modify robot control parameters easily and understandably
during medical trials.
Senior Engineering Consultant
2016 – 2017
C++, CUDA, OpenGL, GTSAM, Bazel
- Built a system capable of generating flight paths for a drone
to autonomously take dimensional measurements of large-scale
- Implemented and extended state-of-the-art point-set algorithms
for understanding unstructured scene data in a combination of
modern C++ and CUDA.
- 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.
Senior Computational Geometer
2014 – 2016
Python, Parasolid, OpenCascade, Solidworks
- Led a team that built a novel system 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 geometric algorithms
(two of which were patented)
for toolpath generation, including robust algorithms for
planar curve offsets, arbitrary curve interpolation, and optimal
- Purchased, installed, and maintained on-premises servers and
networking equipment for toolpath and simulation systems.
Software Engineer, Tech Lead
2012 – 2014
Android, Bluetooth, WiFi, Zigbee, App Engine, Google APIs
- Led development of the Android Wear phone app and the media
control, fitness, and retail mode systems of the Android Wear
- Made a number of userspace changes to the Android framework
and operating system to allow the entire framework and many
Android apps to run with as little as 128MB of RAM and on
sub-GHz low-power CPUs.
- Co-created a patented
algorithm for gesture recognition on extremely-low-power
- 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.
- 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.
- Contributed to an Android app that allowed users to control
IoT devices in their home.
- Contributed to the first version of the
App Engine Search API.
- Evaluated internal search product vendors, then wrote the
integration between the App Engine application servers and
the chosen internal search service.
- Created a mock search API in Python that was distributed in
the App Engine SDK, which developers could run their code
against locally, and created a test suite to ensure the mock
API and production API behaved similarly.