Employment History

Soar Technology (2012 to present)

Senior Software Engineer
  • Identify and develop project requirements based on customer desires and needs.
  • Design and build software components according to requirements.
  • Identify, design, and build tools and libraries that solve recurring problems.
  • Mentor engineers on tools, libraries, development practices, etc.
  • Assist in proposal development (concept development and technical guidance.)

United States Air Force (2006 to 2012)

Subsurface Operations Monitor
  • Manage shift personnel.
  • Provide technical support for worldwide data collection and analysis systems.
  • Analyze, report, and escalate significant event detections.
Senior Data Analyst, Subsurface Operations
  • Perform analysis of subsurface regional, teleseismic, and hydroacoustic data (earthquakes and such.)
  • Provide on-the-job training for junior analysts.
Senior Data Analyst, Satellite Operations
  • Perform analysis of data from satellite-based sensor systems.
  • Provide on-the-job training for junior analysts.
Duty Position Evaluator
  • Develop and administer written and oral evaluations to certify individuals on job responsibilities.



I always like trying new languages, but this list covers some that I've been using recently.

Libraries and Frameworks

Software that frequently shows up in projects I'm working on lately.

Unity3DUnreal 4PocketsphinxJava EE

The most common development tools that I use day-to-day.

GitMavenVagrantIntelliJ IDEAVisual Studio

A few areas that have been a recurring theme in my recent work.

SimulationSerious gamesSpeech recognitionMachine learningEmbedded softwareAutomation

Professional Projects

A non-exhaustive sample of projects I've worked on in my career.

Speech Recognition and Grammar Models

New paradigms for language model development enabling end-user authoring and customization for better speech recognition.

  • Proposed technical objectives and leading development team.
  • Designed and implemented grammar "compiler" to build application-specific models at runtime.
  • Integrated with open source speech recognition libraries.
  • Designed and implemented semantic parser to translate text into computer-readable output.
  • Designed editor paradigm to enable non-expert users to define and edit grammar models.
Deep learningJavaNLPCXMLSpeech recognitionPocketsphinx

Parachute Training Simulator

Simulator enabling Navy pilots to practice post-ejection parachute descent procedures.

  • Conducted SME and customer interviews to better understand domain and develop project requirements and goals.
  • Designed, fabricated, and integrated electro-mechanical system combining COTS solutions, real flight gear, and custom hardware.
  • Designed and implemented embedded software for custom sensor solution.
  • Designed and provided implementation guidance for physical simulation software model.
C++SimulationCADElectronicsUnreal 4Embedded software

After-Action Review System Backend

Backend services for training exercise after-action reviews combining heterogeneous data sources.

  • Setup reproducible virtualized development environment.
  • Designed and implemented software stack for distributed data processing.
  • Developed tools for extracting and deserializing proprietary metadata streams from videos.
  • Designed and implemented video processing service.
  • Implemented backend of streaming API for various data sources.
RabbitMQJava EEJavaNginxVideo transcodingVirtualBoxWebsocketsBashVagrantSQL

Seismic Event Characteristic Prediction Tools

Tools for predicting seismic event characterisics from historical data.

  • Extracted historical data and built k-NN models.
  • Built and integrated interfaces to predict event characteristics on new detections.
CSchemeGeophysicsPerlBashMachine LearningSQL