March 2022 -
[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 -
[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 -
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 -
[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 -
Aleph One LLC ( high frequency trading hedge fund )
Worked closely with researchers to support modeling, testing, and trading operations.
May 2008 -
[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 -
[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 -
[High Performance Computing Manager]
Molsoft LLC ( software for molecular modeling, computational chemistry )
Managed two Linux clusters with several hundred nodes.
March 2004 -
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 -
[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 -
[Manufacturing Engineer Intern]
Sheffield Measurement, Inc. ( manufacturer of metrology robots and instruments )
Created 3d computer models for facilities planning.
April 1997 -
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.