• Development of safety critical, hard real-time embedded systems and simulations in the fields of spacecraft avionics and ground control systems.
  • Development of commercial device drivers and board support packages.
  • Providing customer support and training.
  • Providing technical and administrative leadership.
Embedded Systems Development
  • Designed and implemented Software Development Kits (SDKs) for many Single Board Computers (SBC's) and I/O boards including device drivers and support libraries for a major commercial hardware vendor. OS's supported include Windows, Linux, QNX, LynxOS, and Solaris. Features included VMEbus drivers, hardware timers, watchdog timers, NvRAM, analog and digital I/O boards.

  • Served as architect of the flight software for NASA's Ares I and SLS human-rated launch vehicles and developed much of the infrastructure code for scheduling and data routing including a novel deterministic publish/subscribe system to meet the special needs of a fault-tolerant computing system. The system was deployed on triple redundant voting PowerPC single board computers using VxWorks's ARINC-653 partitioned operating system.

  • Developed software for CubeSats with attitude control and onboard propulsion systems in C and C++ on Linux and FreeRTOS with ground support software written in Python and Qt.

  • Produced flight and ground software in C++ and Qt for sounding rocket payloads.

  • Developed defensive weapons system targeting and management software with extremely challenging real-time constraints in C++ using VxWorks. Massive amounts of radar data were rapidly processed to track targets by using a combination of custom FPGA logic and GPU assembly code.

  • Created a navigation system using Inertial Measurement Unit (IMU), Global Positioning System (GPS), and PC-104 hardware by integrating extended Kalman filter code produced in Matlab/Simulink with hardware interface and data logging software written in C using the QNX operating system.

  • Defined the remote command protocol for payloads on the International Space Station (ISS) and implemented the server side of the interface using TCP, UDP, and UDP multicast networking with command data definitions maintained in a SQL server.

Simulations Development
  • Developed processor-in-the-loop and hardware-in-the-loop testing facilities for satellite avionics.

  • Won awards at SISO Smackdown for a High Level Architecture (HLA) based simulation of a lunar communications network written in Java.

  • Developed a Matlab/Simulink simulation of inertial navigation error to perform sensitivity analysis.
  • Developed simulations for analysis of NASA’s Orion/Ares I crew abort system using C, Perl, and Matlab.

  • Designed and developed a simulation of the Johnson Space Center (JSC) Mission Control Center (MCC) Consultation Committee for Space Data Systems (CCSDS) interface to the International Space Station for use in personnel training and verification of the Huntsville Operations Support Center (HOSC) command system.

  • Built a compiler and debugger for Draper Lab's Timeliner scheduled execution language for ISS payload operator training using Bison (Yacc), Flex (Lex), and C code. Implemented a graphical integrated development environment for the project using XWindows/Motif.

  • Used Matlab, Python, and R to conduct data analysis on various projects

Systems Engineering
  • Reviewed major program software architectures as a member of the NASA Software Architecture Review Board.

  • Defined and modeled software architecture and requirements for the Ares I launch vehicle in UML using Sparx Enterprise Architect and captured requirements in IBM DOORs.

  • Completed detailed documentation of a safety critical military weapons system requirements and interface specifications conforming to a CMMI level 5 process.

  • Contributed significantly to the specification of the remote commanding interface for payloads aboard the International Space Station.

Process Improvement
  • Installed and managed version control systems on multiple projects.

  • Installed and managed issue tracking system for a large software development team.

  • Improved workflow through the introduction of a Wiki for collaborative development and inter-department communication.

  • Improved product documentation and reduced documentation development time by developing a domain specific documentation language in XML/XSL to produce high quality, consistent documentation for an entire series of commercial products. This domain language provided for reuse of documentation components across multiple products and direct automated inclusion of example code and expected test results.

  • Performed root cause failure analysis of electronic circuit boards and manufacturing processes as part of the quality engineering staff of a major electronics manufacturer.

Business Experience
  • Served as technical leader for multiple teams - making work assignments, establishing processes, interviewing, conducting performance appraisals, developing staffing plans.

  • Produced government contract proposals that won millions of dollars in revenue.

  • Established and maintained a lab providing avionics services to research projects including new methods for producing magnetic torquers for small satellites, new small satellite propulsion technology, and new methods for testing small satellite control systems.

  • Worked directly with customers to solve their technical challenges in fielding commercial off the shelf products.

  • Managed successful products through their lifecycles from concept to deployment and into the operations and maintenance phase.