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 and intelligent 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

SpaceX Corp
Sep 2015 to present
Starlink Satellite Internet
Flight Software Engineer

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.

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
  • Windows
  • Embedded Linux
  • Ubuntu
  • Visual Studio
  • Matlab
  • VMWare
  • HyperV
  • Cadence
  • Altium Designer

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

Architectures
  • Cortex-M0
  • Cortex-M0+
  • Cortex-M3
  • Cortex-M4
  • x86
  • x64
  • AVR
  • PIC

Compilers
  • MSBuild
  • MDK-ARM
  • GCC

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