Overview
Skills
- Programming languages: C, C++, Python, Bash, and LaTeX
- Optimization of image processing, computer vision, and pose estimation algorithms
- Hybrid computing systems and interfacing with FPGAs for hardware acceleration of math/algorithms
- In-space Servicing, Assembly, and Manufacturing (ISAM), space systems, radiation tolerant design, and sub-orbital telescopes
- Linux and real time operating systems (VxWorks) on x86, PowerPC, and MicroBlaze platforms
- NASA Core Flight System (cFS) and OSAL
- Systems programming and Unix terminal (make, gdb, ssh, etc.)
- Git version control, coding standards, static analysis (CodeSonar), process control, and CI/CD (GitLab, Jenkins, etc.)
- Documentation with Doxygen, Markdown, and LaTeX
- Basic knowledge of VHDL, Perl, Awk, Sed, HTML, CSS, PHP, and JavaScript
- Basic knowledge of circuit analysis, PCB layout, astrophysics/cosmology, and particle physics
- Fluent in English and Spanish, intermediate in French, beginner in Russian and German
Experience
Principal Flight Software Engineer
NASA Goddard Space Flight Center [Intuitive Machines] (Greenbelt, MD)Jan 2016 - present
Hybrid Flight Computing System (HFCS) Team
Code 480: NExIS (NASA Exploration and In-space Services)
OSAM-1 mission
- Develop mission critical flight software in C and C++ on PowerPC and x86 architectures
- Design software for VxWorks real time operating system and Linux using cFE/cFS framework
- Optimize and implement various image processing, computer vision, and pose algorithms for autonomous spacecraft rendezvous and robot arm grapple
- Interface with Xilinx FPGA cores for hardware acceleration of image processing code
- Transform non-flight computer vision and pose estimation algorithms into flight-ready code
- Improve code quality and reliability by writing well-documented code, performing code reviews, leveraging static analysis tools (CodeSonar), and unit/regression testing (UT-Assert, gtest)
- Develop tools in Python and Bash for data analysis/plotting, image conversion, and latency analysis using libraries such as pandas, numpy, bokeh, etc.
- Create command and telemetry specifications and operate ground system (ASIST and COSMOS)
- Write and maintain official HFCS C/C++ Flight Coding Standards
- Present technical information to reviewers at critical subsystem reviews (PDR, CDR, etc.)
- Collaborate with other teams to solve complex problems in an interdisciplinary environment
- Experience at multiple high-profile test campaigns with flight hardware (avionics, robotic arms, sensor, etc.) and ground support equipment
- Teach Git version control to multiple teams at NASA
- Lead intern program including writing position descriptions, interviewing, and mentoring
Research Assistant
European Organization for Nuclear Research (CERN) (Geneva, Switzerland)Aug 2014 - Jan 2015
ATLAS Experiment, Large Hadron Collider (LHC)
- Research assistant to Dr. Tancredi Carli (quantum chromodynamics, proton-proton collisions)
- Developed scientific analysis software in C++ and Python on SLC6 (Scientific Linux CERN 6)
- Co-developed the C++ program Spectrum to plot experimental data, theory predictions, and PDF (Parton Density Function) convolutions
- Created file format for Spectrum to parse data, grid, and PDF configurations
- Interfaced with high-energy physics (HEP) libraries such as: ROOT, APPLgrid, LHAPDF, and FastJet QCD
- Created the Spectrum website
Computer Engineering Co-op
NASA Goddard Space Flight Center (Greenbelt, MD)Jan - May 2014
Code 665: Astrophysics, Observational Cosmology Laboratory
BETTII Project
- High-altitude far-infrared balloon observatory for star formation and active galactic nuclei
- Interfaced with stellar image processing software in C and C++ in a Unix environment
- Developed StarTracker software for Star Cameras
- Interfaced between flight computer and FPGA with RS-422 shared buffer using C and LabVIEW
Computer Engineering Co-op
L3 Communications, Avionics Systems (Grand Rapids, MI)May - Sep 2013
- Designed software to configure and test avionics instruments
- Developed GUIs in C using LabWindows/CVI
- Tested units under environmental conditions and analyzed data
Computer Engineering Co-op
Custom Electronics, Inc. (Grand Rapids, MI)Nov 2011 - May 2013
- Programmed 8-bit Microchip microcontrollers in C using MPLAB X
- Wrote software for scientific instrumentation buoys
- Designed a series of eight electric guitar effect pedals
- Designed electrical schematics and PCBs in Altium Designer
Education
B.S.E, Computer Engineering '15
Grand Valley State University (Grand Rapids, MI)GPA 3.957
- ASEE CEED National Co-op Student of the Year 2014
- Academic Excellence Award in Computer Engineering 2015
- Oustanding Co-op Student 2015
- Oustanding Senior in Computer Engineering 2015
Interests
Space, computer vision, cryptography, astrophysics, particle physics, travel, languages, backpacking, hiking, camping, dogs, brewing, LOTR, cocktails, and euchre