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.

Skills

Languages

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

JavaC#C++BashKotlinJavascriptSQL
Libraries and Frameworks

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

Unity3DUnreal 4PocketsphinxJava EE
Tools

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

GitMavenVagrantIntelliJ IDEAVisual Studio
Domains

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