Author image

Adam St. Amand

Embedded Systems Engineer

Former Marine | Part-time musician | Lover of all things robotics

Thanks for checking out my website. You can get to know my professional qualifications, my personal interests, or just take a look at some of the projects I'm currently working on.

If you have any question or would like to get in touch, feel free to reach out to me through any of the channels below.


Education


"Know yourself, and seek self-improvement"
-Marine Corps Leadership Principles

B.S. Computer Engineering

Minor Computer Science

University of Colorado

Boulder, Colorado
August 2014 - May 2017

My time in the Marine Corps had prepared me to take full advantage of my time at the University of Colorado. I had been taught that you get out what you put in, and I knew this to be particularly true at university. I was very fortunate to be attending a university that had such diversity; in experience, challenges, and people.

During my three years I worked as a research assistant, played saxophone in the jazz band, trained with the triathlon team, become lead engineer of a satellite project, and ultimately learned how to manage my time (without a supervising Sergeant). The Marine Corps taught discipline, initiative and motivation; University gave me an opportunity to apply it.

  • Data Structures
  • Algorithms
  • DSP
  • Operating Systems
  • Computer Architecture

  • Experience


    From the Marine Corps to NASA, I have a diverse
    set of professional experiences.

    Amazon Project Kuiper

    Senior Embedded Software Engineer

    Amazon

    Project Kuiper

    Seattle, Washington
    May 2021 - Current

    Amazon's Project Kuiper is a communications satellite constellation designed to provide internet access in situations that are historically difficult, if not impossible, to do so. Such situations include underserved communities around the globe, maritime applications, military and more. There are three primary elements to the Project Kuiper Network; the Ground Gateway which interfaces with the internet, the Customer Terminal which interfaces with customer devices, and the Kuiper Satellites which acts as a wireless bridge between the gateway and terminal.

    I had contributed to all three of these elements during my time with Amazon, with a primary focus on the Customer Terminal and Satellite Phased Array Antenna link. I designed/implemented the application software as well as drivers necessary to interface with the modems and beam formers on the satellite and terminal. This software included bootstrapping devices, configuration, telemetry, and commanding. I implemented a developer commanding suite for general used to enable integration testing of application software, both in simulation and on target.

    Project Kuiper has a government interfacing organization that focusses on providing connectivity for government use cases. I worked with this organization as well to adapt the consumer customer terminal for use with military grade antenna, with the intention of integrating on mobile platforms such as ships and aircraft. I had led the software team in the development, test, and deployment of mission critical deliverables, achieving the end to end streaming of customer data to/from a production Kuiper satellite.

    • Designed and implemented flight software in C++/Rust to interface with beamformer mesh on phased array antenna on both satellite and terrestrial customer terminals.
    • Developed Rust application running on Zynq US+ as a gRPC server for both BIST and command/control of the terminal RF front end.
    • Led the end to end integration and test of satellite and terminal data streaming over the air at 400 Mbps, both RX and TX.
  • Rust
  • C++
  • C
  • FreeRTOS
  • Yocto
  • UART
  • SPI
  • I3C
  • Linux Kernel Drivers
  • TCP/UDP
  • Docker
  • Interlaken
  • CICD
  • gRPC
  • AWS
  • Loft Orbital

    Embedded Flight Software Engineer

    Loft Orbital

    YAM-2

    San Francisco, California
    October 2019 - May 2021

    The Payload Integration and Control Unit (PICU) is a satellite subsystem designed to act as a payload hub, sitting between the satellite bus and multiple satellite payloads. The mission of the PICU is to enable the excution of several missions across several different payloads, all onboard one satellite. It does so by managing bus resource allocation, scheduling payload operations, handling command and data, all while providing customers access to their payloads in real-time. The PICU is implemented as a cluster of distributed nodes, allowing for redundancy as well as load balancing for more demanding computation.

    As a senior developer on the PICU software team, I designed/implemented many of the critical functionalities of the PICU, such as the hearbeat/state of health broadcasting system, the CCSDS Space Packet communications stack, the time synchronization mechanisms (utilizing pulse per second hardware), and more. I also wrote and maintained a scripting suite in python to enable the scalable configuration and generation of missions in arbitrary setups (the cluster of distributed nodes changes between missions).

    I also designed and developed an open source message-oriented middleware to replace the proprietary (and difficult to use) framework that had originally been used for the PICU. This middleware was built off of ZMQ, and enabled users to create arbitrary and scalable mesh networks of peers. Peers can then communicate with each other using three messaging patterns: Pub/Sub, Request/Reply, and Push/Pull. The project is called the Distributed Peer Network.

    • Designed and developed core flight software features, such as Time Synchronization, State of Health, and the Communications Stack.
    • Wrote scripting suite in python to enable scalable configuration and generation of software deployments. The suite supported generation, building, executing, deploying, and releasing software.
    • Designed a Message-Oriented Middleware using ZMQ in C++14 with support for various patterns such as Pub/Sub, RPC, and Reply/Request, allowing developers to rapidly develop and test flight software.
  • C++
  • C
  • RTEMS
  • RTOS
  • Distributed Systems
  • UART
  • TCP/UDP
  • Docker
  • SPW
  • Google Test
  • CI
  • ZMQ
  • GR712
  • CCSDS/EECS
  • Europa

    Embedded Flight Software Engineer

    NASA Jet Propulsion Laboratory

    Europa Clipper

    Pasadena, California
    May 2018 - October 2019

    Europa Clipper will gather important data about one of Jupiter's icy moons, Europa, investigating it's potential to harbor conditions suitable for human life. The mission will launch a satellite into Jupiter's orbit, allowing the spacecraft to flyby and collect data from Europa.

    My role on the project as an embedded flight software engineer has been to develop the software running on the main flight compute elements (a redundant set of flight computers). Working in a team of nearly 30 software engineers, we were tasked with not only developing software for the Europa Clipper mission, but developing a software product that could be easily repurposed for future missions. We used a space-time partitioned operating system (Greenhills Integrity), introducing modularity and safety, but adding complexity due to the introduction of partitions and virtual address spaces.

    • Designed, implemented, and tested PowerPC driver, providing CPU abstraction and services to the rest of flight software. Code written in C, for Greenhills Integrity real-time operating system.
    • Implemented file verification system, enabling verification of files sent to satellite from ground.
    • Wrote PCI Memory Hardware simulation in C++ to allow flight software memory drivers to be tested while hardware was unavailable, enabling the software team to meet deadlines independent of hardware delays.
  • C++
  • C
  • PowerPC
  • RTOS
  • Drivers
  • PCI
  • Lunar Flashlight

    Lunar Flashlight

    June 2017 - May 2018

    The Lunar Flashlight mission will use a 6U cubesat and cutting edge green propulsion to be the first cubesat to reach the moon, as well as be the first mission to use lasers to search for water ice.

    My role on the team as an embedded flight software engineer was to develop driver level software to enable interfacing with hardware. I worked on a team of about 8 other software engineers tasked with designing a modular software framework called F-Prime. This framework was designed as a product to enable quick development of small satellite missions, but also as a tool to be used by the public. The framework is open source and currently on GitHub.

    I was also fortunate enough to get to help with the hardware design of the flight computer. As part of the hardware team, I and three other engineers worked to design and test the Sphinx board, again designed to be reused by future projects.

    • Designed, implemented, and tested UART driver, enabling command and control of onboard 6-thruster propulsion unit.
    • Designed, implemented, and tested SPI driver, enabling command and control of onboard IMU.
    • Completed revision of 12 layer CD&H PCB, including supporting breakout board and 3D printed enclosure
  • C++
  • RTOS
  • UART
  • SPI
  • Leon3
  • Altium
  • Solidworks
  • Polar Cube

    Avionics Lead Engineer

    PolarCube

    Colorado Space Grant Consortium

    Boulder, Colorado
    April 2015 - May 2017

    The PolarCube mission is utilizing a 3U cubesat in order to collect atmospheric temperature profile measurements. The payload, an earth-sensing passive microwave instrument, will be the first passive microwave sensor flown on a small satellite.

    My role on the team evolved overtime, starting as just a summer intern working on the flight software, to eventually being the lead avionics engineer, responsible for all hardware and software on the satellite avionics bus.

    It was an amazing and necessary experience for me, as it resulted in me knowing exactly what I wanted to do with me career. It was in this project that I developed a passion for the intersection between hardware and software. I experienced what it's like working with a small, tight knit team in which every member is equally passionate about accomplishing the mission. From the late night meals to the occasional overnights in the lab, I learned more about engineering there than anywhere else; technically, personally, and professionally.

    • Wrote and tested flight code for Electrical Power System in C on a TI MSP430, enabling power regulation and distribution to entire satellite.
    • Designed hardware and software for Battery Pack Board, enabling autonomous charging and regulated discharging of onboard batteries. TI BQ40z60.
    • Designed hardware watchdog using a CPLD written in Verilog, providing hardware checks and fail-safes for the entire satellite.
    • Designed hardwware and software for Attitude Control and Determination System, allowing Control Engineers a platform to execute control law code. Atmel SAME70. Including CMOS image sensor for star tracking, SDRAM for star catalog, 3 brushless DC motors for reaction wheels.
    • Wrote Flight Software for Command and Data Handling System in C++, running on an Atmel ??
    • Debugged hardware extensively utilizing Oscilliscopes, Mulitmeters, logic analyzers, and spectrum analyzers.
    • Tested and debugged software utilizing GTest, GDB, Doxygen,...
    • Designed and tested 435MHz RF Front End PCB, providing a full duplex link utilizing a monopole antenna.
  • Multithreading
  • SPI
  • I2C
  • UART
  • CAN
  • Altium
  • Python
  • C
  • Ethernet
  • Yocto
  • Git/SVN
  • GTest
  • CHIMERA

    Embedded Systems Lead

    Chimera

    JPL University Program

    Boulder, Colorado
    August 2016 - May 2017

    The CHIMERA (Child drone deployment Mechanism and Retrieval Apparatus) mission was funded by JPL, with the intent to design a drone deployment system capable of surveiling wild fires. The mission inherited a drone from a previous team.

    I was tasked with providing autonomous operation capability for the drone, all the way from takeoff to landing. I was also tasked with implementing autonomous charging capability for the drone, in order to extend the life of each deployment.

    • Designed and tested two battery manager PCB's using Altium and TI BQ40z60 and BQ76930 . These boards
    • Wrote and tested multithreaded program in C running on an embedded linux processor, that communicated over RF with user, monitored autonomous charging, and commanded drone.
    • Wrote application in C++ utilizing OpenCV and ARuco libraries, running on an embedded Linux processor, that interfaced with a CMOS camera in order to find, navigate to, and land on a landing pad autonomously.
  • OpenCV
  • XBee
  • AR
  • Autonomous Navigation
  • Power Systems
  • C/C++
  • Multithreading
  • Python
  • Altium
  • CCAR

    Research Assistant

    HDTV Spacecraft Navigation

    Colorado Center for Astrodynamics Research

    Boulder, Colorado
    August 2015 - May 2016

    I spent a year working with Dr. Jeffrey Parker and his research team in order to demonstrate the efficacy of HDTV signals as a source of navigation for spacecraft. Currently GPS can be used for spacecraft that remain below the GPS orbit (Medium Earth Orbit), or the Deep Space Network (DSN) can be used for traveling beyond, but there are not many alternative technologies available.

    HDTV signals are signals that are broadcast by terrestrial towers, intended to transfer TV data to customers. But, not all of the energy that these towers broadcast stay on near the surface. Due to inherit imperfections in the radiation pattern of these towers, some of the signal radiates towards space. Using some of the synchronization data within these broadcasts, as well as some other a priori information, you can determine position in space with an accuracy of a few 100 meters.

    I was responsible for determining if the signals from the side lobes of the HDTV towers was strong enough to be used for spacecraft navigation. I did so by preparing a payload for a high altitude balloon flight. By collecting data at various angles of inclination relative to the towers, I was able to determine the radiation pattern of the towers. Once the pattern was known, it was just a matter of applying formulas to determine the signal strength at distance.

    • Designed enclosure for High Altitude Balloon payload using SolidWorks, providing structual and thermal support to internal components
    • Wrote test software in python to interface with HackRF radio module while thermal cycling.
    • Utilized ROS framework to interface between embedded linux computer and peripheral devices (RF module, GPS module, IMU).
  • SolidWorks
  • ROS
  • IMU
  • HackRF
  • Python
  • USMC

    Sergeant

    Headquarters Battalion

    United States Marine Corps

    New Orleans, Louisiana
    June 2010 - January 2014

    I served one enlistment in the United States Marine Corps. During that time, I learned not only the typical military skills (firearms, hand-to-hand combat, leadership, etc), I learned many of the skills that are essential to personal success, like how to take initiative, how to be prepared, and how to maintain integrity. And it's for those skills that I consider the Marine Corps to be an essential experience for my personal development.

    I first shipped out to boot camp in San Diego, where I enjoyed a 3-month, expenses paid summer vacation. Myself and the other recruits would go out for jogs in the morning with our camp counselors/Drill Instructors. Afterword, the days were filled with fun activities ranging from casualty evacuation drills to urban combat training, and even some one on one training with the Drill Instructors.

    After training, I was stationed in New Orleans, LA where I began working under my Military Occupation Specialty, a bandsmen. A saxophone player to be precise. I spent the following three years encountering some of my most challenging moments, and developing some of the closest bonds that I am likely to ever. Semper Fi.

    • Led teams of 4 to 30 Marines while maintaining unit cohesion and fostering initiative among subordinates. I delegated responsibility in order to train new leaders and ensure mission accomplishment.
  • Leadership
  • Discipline
  • Accountability
  • Marksmanship
  • Initiative
  • Squad Tactics
  • Hand to Hand Combat
  • Traditional New Orleans Music

  • Skills


    Both my passion and skills lie at the intersection
    between hardware and software.

    Hardware
    Software
    Author image
      Sensors/Actuators
    • BLDC Motors, IMU
    • Optical Sensors
      Microcontroller
    • TI, STM
    • Atmel
      PCB Design
    • Altium, Eagle
      Equipment
    • Multimeter, Oscilliscope
    • Logic Analyzer
      PCB Assembly
    • Reflow
    • Soldering Iron
    • 0201/QFN components
    Author image
      Physical/Datalink Protocols
    • I2C, Ethernet
    • SPI, CAN
    • UART, PCI
      ISA
    • ARM, AVR
    • MIPS, PowerPC
      Networking Protocols
    • TCP/IP, UDP
      Operating Systems
    • Linux, VXWorks
    • Greenhills, FreeRTOS
    Author image
      Programming Languages
    • C/C++11/17
    • Python, Verilog
      Frameworks
    • OpenCV, ROS
    • OpenSlam, MQTT
      Software Development
    • Git, SVN
    • GTest, Travis
    • Google Benchmark
    • Doxygen, Sphinx
    • Agile