Experience/Mission Operations Backend Lead
SFU Satellite Design Team

Mission Operations Backend Lead

June 2024 - Present
TypeScriptPythonPoetryPostgreSQLDockerBullMQ

Summary

  • Led a team of 5 developers in developing ground infrastructure for ALEASAT, a 1U CubeSat.
  • Developed a Python ground station client with real-time satellite tracking to proxy radio signal transmissions.
  • Led the development of a TypeScript job queue using BullMQ for orbit propagation, pass finding, and system simulations.
  • Managed a team of five developers while enforcing rigorous code reviews and test-driven practices.

Details

ALEASAT is a 1U Earth Observation CubeSat that can be used by radio amateurs to support disaster relief operations. This project composed of around 100 students from UBC Orbit and SFU SAT. With support from UBC, the Radio Amateurs of Canada, and the European Space Agency's Fly Your Satellite! Programme, we are in the process of building and testing our satellite with an aim to launch it in a few years.

I joined ALEASAT on the Mission Operations subsystem with the backend team in June 2024. Mission Operations is responsible for the satellite's operation, including monitoring the satellite's health, and scheduling the satellite's tasks. The team is also responsible for the satellite's communication with the ground station and the data processing of the images taken by the satellite.

In July 2024, I developed a Python application known as the ground station client, designed to track satellites and adjust antenna alignment in real time. The project adapted Libre Space Foundation's SatNOGS Client, transitioned to Poetry for dependency management, modified contact requests to originate from its own REST API, and implemented persistent contact storage.

In November 2024, I assumed a leadership role and led the development of a job queue based on the producer-consumer pattern, implemented in TypeScript with BullMQ. This job queue schedules and executes tasks such as orbit propagation, pass finding, and system simulations. In January 2025, our team expanded, and I began leading a group of five developers.

I conducted extensive code reviews, enforced team coding standards, and implemented rigorous testing protocols. I also participated in design and architectural discussions while supporting the onboarding of new developers with the necessary technical resources. All development activities adhered to a strict test-driven development process.