About Me

Hi there! I'm an engineer passionate about creating the next breakthroughs in technology, and focused on working on early stage ideas, helping to shape new product definitions. I have worked primarily in the consumer electronics industry in the past, but my real passion is in robotics, spacecraft, and intelligent autonomous systems.

I believe in quality of a final product at all costs, and I am never satisfied until every detail of a project has been seen after. As such, I like to work at all levels of the software stack. Most importantly, I am always looking to learn something new and seeking my next opportunity to expand my horizons - the more challenging and foreign, the better!

Languages I speak

Places I've Been

Education

Carnegie Mellon University
Aug 2007 to May 2011
Electrical & Computer Engineering

Work Experience

Relativity Space
July 2022 to Present
Mission Assurance and Vehicle Simulation
Staff Software Engineer

Part of the Integrated Software group responsible for all parts of the company's rocket software stack. Specifically focusing on building the next generation of flight software in a testable, verifiable, and deployable way that spans all stages of software development and delivery.

  • Evangelist for new processes, tools, languages from outside the aerospace sector to improve team velocity and reduce friction for cross-team collaboration. Advocated for standardizing across the software team to help team member fungibility, ease on-boarding of new members, and expand the hiring pool of new candidates.
  • Developer of a standard procedures and run-book for operations done during test and flight operations, so that flight operations can be a special-case of procedures that were run many times in test environments.
  • Identified and remediated performance bottlenecks in the flight computer runtime configuration across the software implementations and the platform configuration.
  • Contributed to building simulation proxy components to allow Vehicle-in-the-Loop testing, to help validate and ground the Hardware-in-the-loop tests on an integrated vehicle.
  • Built a state machine validation engine for the in-house developed domain-specific language that the company uses for automation.
NVIDIA
Oct 2020 to July 2022
NVIDIA Drive AV Solution
Senior Software Engineer in Mapping

Responsible for all on-vehicle mapping contents for autonomous vehicles - from acquisition, to distribution, and back to telemetering discrepancies between perception and expectations.

  • Architect of the in-car map distribution topology and pipeline, using a data syndication model for location updates around the Ego vehicle, and a request-response model for route queries. Serving largely different radii and data types (i.e. small vector polygon layers over large distances, and super dense RADAR/LiDAR bitmaps over short distances.)
  • Synchronized a real-time critical, highly scheduled piece of code with an asynchronous downloader and file manipulator process, including writing all libraries for downloading, decompressing, filesystem storage and retrieval, and content verification/validation.
  • Member of small committee responsible for the definition of the NVIDIA mapping schema across all layers. I wrote the grammar engine (named Bizarro) and many semantics validators for the map contents, to ensure that the schema stays valid and consistent across terabytes of map data.
  • Built a large continuous integration and deployment system on top of Gitlab's CI/CD framework to ensure high quality code in the Bizarro tool and across maps.
  • Mentored other members of the team with in-depth code reviews, 1-on-1 coaching, and broader philosophical discussions on how to develop and maintain highly critical, human-safety relevant software.
Maka ARS
March 2020 to Sep 2020
Maka Weed Killing Robots
Senior Software Engineer

Brought on with deep experience in all parts of the mechatronic and electrical systems, and knowledge of how to build complicated hardware systems.

  • Introduced the concept of a GNC (Guidance, Navigation, and Control) system for managing high-level functions of the robot including how to perform autonomous driving subfunctions, and managing the interactions between the weed exterminator and the drive system.
  • Built a Madgwick-inspired pose estimator for calculating the orientation of the robot while driving, to prevent accidentally driving into orientations that would require manual human intervention to recover.
  • Championed a containerized software architecture where the robot is comprised of microservice dockers to build a scalable and testable system with various hardware components mocked out for testing and simplification of development.
  • Built a telemetry gathering system that leveraged the same message bus used for inter-process communication, allowing testing and more importantly playback of recorded data that lead up to bugs being discovered. Also implemented a Grafana visualizer dashboard to automatically deploy with the robot from version controlled (in git repository) dashboard files.
SpaceX Corp
Sep 2015 to March 2020
Starlink Satellite Internet
Flight Software Engineer 2

Responsible for all aspects of Telemetry, Tracking, and Control ground software systems and architecture. As member of the team, reviewed code and architecture direction from peers. Principally responsible for hardware/vendor abstraction antenna dish controlling software to integrate with company standard software stack, and the antenna time scheduler for allocating communications with satellites. Built constellation network simulation software from scratch using data collated from public sources for analysis to optimize business operations and deployment plans.

  • Built a Geo Information System database and analysis system used for determining the optimal placement of internet access gateways to bridge the satellite network to the terrestrial internet. Used it for analysis of ground gateway locations such that traffic was equitably distributed and no single ground network connection was overly saturated with traffic. Became a critical business analytic data source, and coordinates data between satellite, network, and business operations.
  • Designed and deployed the satellite communication task scheduler responsible for prioritizing and dispatching communication tasks between satellites and ground data centers for such things as health monitoring, telemetry/ephemeris updates, and transmission and verification of software updates to satellites in flight.
  • Built a general purpose antenna dish operating application that is extensible to any vendor's hardware, via any interface. Co-constructed and implemented proprietary algorithms for reliably making contact with satellites, accounting for unpredictable sources of error.
  • Directly supported satellite operations with software by providing many mission critical tools to ensure the safe and reliable operation of vehicles in space.
  • Overhauled MVP architecture used for demonstration mission into a production ready global satellite internet service provider back-end capable of servicing billions of users.
  • Architected a complete software defined network that interoperated with existing protocols like TCP/UDP and the proprietary space-optimized network protocol that was developed specifically for optimizing network performance across variable delay satellite links.
  • Lead investigations into all aspects of control and data plane traffic to identify where and why radio throughput was suffering. Worked closely with the Satellite Broadband Communication Integration team to solve challenges originating on the ground side and also related to bidirectional aiming challenges (satellite-to-ground, and ground-to-satellite).
  • Co-authored an automatic self-alignment algorithm for our in-house Ka radio dishes, and drove the project from inception to finished product of being able to deploy thousands of network dishes around the world with only a power cable and network connection. This included system design work, firmware and low-level implementation of hardware control, software control and data plane design and implementation, and debugging of initial deployments to maximize link power.

Mark One Lifestyle Inc
Oct 2014 to Aug 2015
Vessyl Smart Cup
Director of Firmware and Algorithms

Built from scratch and managed two separate but inter-related software teams to develop the firmware and algorithms for the Vessyl smart cup. Lead the technical specification creation, contributed to the product specification creation, and selected major hardware components for cost-effectiveness and performance. Mentored junior developers in the creation of a unified code-base that was platform-agnostic to support alternate component sourcing and long-term evolution of the hardware.

  • Designed and built from scratch a command-line IDE that combined Visual Studio, MSBuild, Keil µVision, MDK-ARM, and Git for cohesion between developers and workstation configurations.
  • Crafted a chip vendor independent, event driven, embedded operating system focusing on power efficiency, featuring a decentralized cross-library signalling mechanism and extensive debugging capabilities.
  • Developed the company's core intellectual property signal processing and machine learning algorithms for drink identification and nutrient detection.
  • Wrote a MatLab based visualization front-end that was used to demonstrate the technology to investors and press, and used internally to test sensor hardware iterations.

Microsoft Corp
Dec 2011 to Oct 2014
Personal Devices
Software Development Engineer

Worked extensively on biometric algorithms alongside Microsoft Research focusing on world-first automatic human activity recognition and exercise agnostic repetition counting. Organized rigorous scientific validation studies of established medical science papers, identifying critical flaws, and incorporating the fixed implementations into the Microsoft Band product.

  • Invented an algorithm for repetitive exercise counting leveraging established techniques from audio beat and pitch detection.
  • Ported a Matlab based machine learning proof-of-concept algorithm to an embedded platform using custom built math libraries and processing pipeline optimization tricks.
  • Innovated testing methods for validation of algorithms running on device.
  • Developed an algorithm for estimating a user's heart rate based on their activity level to interpolate between actual measurements being taken, allowing for a 90% efficiency gain at no loss of fidelity.

Disney Research Pittsburgh
Aug 2011 to Dec 2011
TeslaTouch
Product Development Engineer

Revised a research hardware prototype into a cost effective and mass producible design. Developed versatile and fault-tolerant embedded software to integrate with existing host driver and software. Designed, simulated, and prototyped electronics for driving high voltage, human contact safe signals.

  • Built a USB powered 400VDC constant current boost circuit and used it to modulate a software defined analog waveform.

Microsoft Corp
May 2011 to Aug 2011
Xbox Accessories Incubation
Intern Incubation Engineer
  • Conducted research on the feasibility of technologies to be used in future Xbox accessories.
  • Developed alternative proprietary technologies, algorithms, and formulas for achieving desired end-user experiences.
  • Worked with vendors to identify problems and rapidly fix/mitigate their effects.
  • Constructed a test harness and demonstration application that allowed rapid testing and metrics gathering on hardware iterations.

Microsoft Corp
May 2010 to Aug 2010
Windows Direct2D
Intern Software Development Engineer
  • Built an entire SVG Player implementation to SVG 1.1 specifications on the new Windows 8 Direct2D framework.
  • Deployed the SVG Player on a distributed testing platform to quickly analyze the performance of Direct2D library changes using a large battery of diverse tests.
  • Researched possible improvements to the Direct2D API, including ways to improve performance in special cases and ways to make typical use cases for developers easier to program.
  • Presented my research findings to the entire Direct2D team, lead a discussion about ways to implement the changes and defended my position from challenges and questions from the team.

Carnegie Mellon University
May 2007 to May 2010
Robotics Institute
Research Associate
  • Designed and deployed the controlling hardware and sensors for use inside a research boat, including writing drivers that incorporated custom inter-process communication.
  • Assembled by hand, tested, and debugged complicated circuit boards involving a variety of construction techniques, and loaded them with control software before deployment in the field.
  • Wrote simulation and data parsing/graphing scripts in MATLAB.

Astrobotic Technologies
Aug 2008 to Dec 2008
RedRover
Power management team
  • Worked on the solar panel research and design team.
  • Responsible for mission critical calculations and simulations regarding power supply for a robot on the moon.

Projects

SWANDRIVE
Aug 2010 to May 2011
Smart Wireless Analysis Network for Driver Information and Vehicle Efficiency
  • Developed a low-level fault-tolerant mesh network protocol based on IEEE 802.15.4 for use in and around automobiles.
  • Future technology tolerant architecture, based around a unified message passing protocol.
  • Designed and implemented many diverse sensors to capture valuable operating parameters of a vehicle.
  • Tested the system by mounting it to a go kart and used for telemetry and performance tuning.

JEULES
Aug 2009 to May 2011
JEULES Energy Usage Learning Electrical Socket
  • Designed and developed a robust energy metering device for replacement of conventional electrical sockets.
  • Incorporated an ad-hoc mesh network of inexpensive, low power nodes to communicate information to a central server.
  • Custom PCB development, with focus on high signal integrity and ultra-low power usage.
  • Performed mechanical and electrical design.
  • First place winner of 2010 IBM Smarter Planet award, and Second place of 2010 Lockheed Martin Eta Kappa Nu award.

AAIT
Aug 2007 to Aug 2009
Assistive Automotive Intelligence Technology
  • Lead a small team to design, build and test a technology designed to improve safety of cars while simultaneously improve the efficiency of driving habits.
  • Designed a full sensing and processing package to be fitted onto a small 1/10th scale car design.
  • Presented project at the Carnegie Mellon Undergraduate Research Symposium.

Skills and Technology

Personal Skills
  • Algorithm Research & Development
  • Low-level Optimization
  • Full-stack Debugging
  • System Architecture
  • Data & Information Analysis
  • Product Life cycle Management
  • Technical Leadership
  • Machine Learning Application
  • Tech Specification Development
  • Detail Pedantic

Platforms, Tools, and Technologies
  • Debian/Ubuntu
  • Docker
  • Kubernetes
  • Embedded Linux
  • PostgreSQL
  • MariaDB/MySQL
  • Bazel
  • InfluxDB
  • Grafana
  • ZeroMQ
  • MQTT
  • Windows
  • Visual Studio
  • Matlab
  • VMWare
  • Pro-FX
  • HyperV
  • Cadence
  • Altium Designer

Languages
  • C++
  • C
  • Python
  • Bash
  • SQL
  • C#
  • Java
  • Assembly
  • Batch
  • Powershell
  • Perl
  • XML
  • PHP
  • JavaScript

Architectures
  • ARM Cortex-M[0, 0+, 3, 4, 7]
  • x86
  • x64
  • AVR
  • PIC

Compilers
  • Clang
  • GCC
  • MSBuild
  • MDK-ARM

Version Control
  • Git
  • SVN
  • TFS
  • CVS

Patents

  • Extending Gameplay With Physical Activity Monitoring Device - USPTO Grant # 8951164
  • Automatic Exercise Segmentation And Recognition - USPTO Grant # 9174084
  • Personal Training With Physical Activity Monitoring Device - USPTO Grant # 8951165
  • Motion Based Estimation Of Biometric Signals - USPTO Grant # 9717427
  • Intelligent Vessel

Publications

RecoFit: Using a Wearable Sensor to Find, Recognize, and Count Repetitive Exercises
ACM CHI 2014
DOI 10.1145/2556288.2557116