March 2022 -
May 2023
[Machine Learning Engineer/Synthetic Data]
Independent Contractor
(
robotics, synthetic data, machine learning, visualization, Blender
)
Worked as an independent contractor for a robotics perception research
group developing systems with difficult human interaction challenges.
Completed the goal of establishing a synthetic training data
production pipeline for machine learning.
Used Blender to create high-fidelity models of the robot's operating
environment. Created a high fidelity simulation of advanced laser
sensors using Blender's geometry nodes.
Wrote Blender addons and an entire external scripting system and
Python library to drive the Blender simulations to produce synthetic
data in lights out cloud environments.
Created low poly assets; retopologized engineering CAD model
complexity by three orders of magnitude to speed up the synthetic data
generation throughput.
Created sophisticated custom rigs to simplify scene configuration for
researchers.
July 2018 -
October 2020
[Lead Autonomous Systems Engineer]
Buffalo Automation Group
(
marine autonomous vessels, sensors, control, navigation
)
Single-handedly made an ordinary recreational powerboat drive by
itself. Wrote all control and navigation software.
Created a semantic segmentation pipeline that could distinguish
between navigable water and places boats should not go, using less
than 15W of power.
Managed a remote data annotation team. Managed equipment vendors and
design subcontractors. Interviewed, managed, and mentored electrical,
mechanical, and software engineering interns.
Met with potential clients, investors, and news media to promote the
company's mission, including live autonomous boat demonstrations.
Personally collected data on diverse waterways on hundreds of
missions. Created software to selectively extract stills to use for
training. Collected, processed, and archived video, lidar, thermal
camera, GPS, accelerometer, weather station, and ship AIS data.
Designed, installed and repaired sensor packages on ships and boats. Designed
and installed complex mounts for cameras, lidar and radar units.
Designed, built, and installed dashboard controls and safety features
for autonomous control. Planned and installed vehicle wiring, power
supply/protection equipment, network connectivity, CAN wiring.
Wrote a Python library implementing the NMEA2k spec for communicating
with marine CAN networks.
Reverse engineered competitor's rudder positioning control interface
and created a C program to inject commands with warranty-voiding custom
software.
Designed an in-house custom steer-by-wire control system with servo
actuation to position the rudder of an ordinary manually driven boat;
wrote the PID control software in Arduino C.
Wrote a custom waypoint management and chart plotting system in C++.
Reverse engineered a marine radar's data stream and wrote a C program
to collect this data (libpcap) and reconstitute it into meaningful
images (libpng). Created a ROS topic publisher for this data.
Designed low power machine learning systems using Linux running on
Raspberry Pi, Nvidia Jetson, Beagle Bone, Google Coral TPU, and
mini-ITX boards. Wrote a non-object oriented deep neural network
training and classification system from scratch suitable for use on
low power microcontrollers. Designed ultra-low bandwidth communication
and administration systems for shipboard computers.
December 2015 -
July 2018
[System Administrator/Programmer]
Scripps Institution of Oceanography, UCSD
(
ocean science sensor data collection
)
Complete system administration and data management for a worldwide
marine sensor network. Initiated a complete refactoring of all data
management practices. Created a thorough internal documentation
system.
Wrote a full-featured Python module to properly handle all tasks
involving Iridium SBD satellite messages. Used this module to write a
multi-threaded socket server to acquire, unpack, and organize data
arriving from thousands of remote ocean monitoring sensors.
Set up a data handling service hosted with AWS to provide complete
redundancy for all critical data acquisition services.
November 2009 -
July 2018
[Research Associate/HPC Manager]
San Diego Supercomputer Center, UCSD
(
computational biophysics and pharmacology
)
Complete high performance computer engineering support for
computational molecular biophysics research.
Wrote an effective job scheduling system to run millions of jobs on
hundreds of cores.
Wrote a set of utilities to transform the FDA FAERS dataset into
something actually usable.
Designed and built many custom storage servers, beating cloud options
on price and reliability.
February 2009 -
November 2009
[Programmer/Systems Architect]
Aleph One LLC
(
high frequency trading hedge fund
)
Worked closely with researchers to support modeling, testing,
and trading operations.
May 2008 -
February 2009
[Scientific Computing Manager/Programmer]
Burnham Institute for Medical Research
(
molecular biology, bioinformatics, medical research
)
Built and managed several high-performance scientific
computing clusters.
February 2006 -
May 2008
[System Administrator/Research Programmer]
University of California San Diego
(
Computer Science Department, Systems and Networking Research Group
)
Complete Linux system administration service for a group of computer
science professors and advanced graduate students specializing in
networking, security, and system administration.
June 2004 -
February 2006
[High Performance Computing Manager]
Molsoft LLC
(
software for molecular modeling, computational chemistry
)
Managed two Linux clusters with several hundred nodes.
March 2004 -
February 2006
[Programmer/Analyst III]
Joint Center for Structural Genomics
(
high-throughput protein structure determination
)
Database/visualization programmer using Python, C++, Perl, and
SQL.
Wrote a comprehensive, general-purpose, object-oriented
Python library for working with Protein Data Bank files.
April 1990 -
March 1997
[Senior Technical Specialist/Manufacturing Engineer]
Dynamic Industries, Inc.
(
subcontract large component machine shop
)
Designed and planned the installation of large machinery.
Managed construction subcontractors and mechanics during site
preparation, layout, excavation, foundation construction,
machine installation, alignment, and testing.
Developed custom software for applications such as machining
and geometry analysis.
Worked with customers to improve manufacturing aspects in the design
of various large metal components such as turbines, machine tools,
presses, and molds.
August 1988 -
April 1990
[Manufacturing Engineer Intern]
Sheffield Measurement, Inc.
(
manufacturer of metrology robots and instruments
)
Created 3d computer models for facilities planning.
April 1997 -
present
[Personal Projects]
Xed
(
technical computing, autonomous vehicle advocacy
)
Wrote Nerdtext, a high performance C++ AsciiDoc mark up processor.
Wrote GeoGad, a custom general purpose programming language for
interactive mathematics and geometric modeling.
Wrote a compound engineering units conversion system.
Wrote machine learning systems for lane keeping, object
tracking, and path planning software for autonomous vehicle
applications. Used ROS to implement software on Udacity's
self-driving car.
Wrote a C++ 3d to 2d unix command line rendering engine.
Created a complete car racing AI optimized with a genetic
algorithm and submitted the fastest Python entry into the
Simulated Car Racing competition.
Blender expert, 3d modeling, scripting, geometry nodes, rigging,
animating, video editing.