join us
Ever wanted to build a satellite? Now's your chance!
Current Openings
Applications are now closed. Thank you for your interest in UBC Orbit. For reference, here are our old postings:
Attitude and Orbit Control Systems
Junior Firmware Developer
The AOCS Firmware Developer is responsible for writing the code at the core of the satellite’s Attitude and Orbit Control Subsystem. In this role, you will get the opportunity to work close to the hardware by developing sensor and actuator drivers, and control and sensor processing firmware. Ultimately, you will contribute to our on-board software and help us build the most reliable control system possible.
Required Skills/Experience:
-
Experience with C and object-oriented Python
-
Experience with Arduino
-
Experience with Git
————————————————————————
Senior Firmware Developer
The AOCS Firmware Developer is responsible for writing the code at the core of the satellite’s Attitude and Orbit Control Subsystem. In this role, you will get the opportunity to work close to the hardware by developing sensor and actuator drivers, and control and sensor processing firmware. Ultimately, you will contribute to our on-board software and help us build the most reliable control system possible.
Required Skills/Experience:
-
Fluent in C
-
Fluent in object-oriented Python
-
Experience with Linux
-
Experience with microcontrollers (e.g. STM32, ESP32, TI, not just Arduino)
-
Experience with embedded communication protocols (I2C, SPI)
-
Experience with software development team processes (pull/merge requests, code review, testing, etc.)
-
Knowledge of common sensors and actuators
-
Knowledge of linear algebra, numerical methods, differential and integral calculus, and differential equations
As an Asset:
-
Completion of a control systems course or have equivalent knowledge (see below)
-
Knowledge of CubeSat (or spacecraft) AOCS/ADCS subsystems
-
Knowledge of control theory and algorithms used in industry (PID, EKF, etc.)
-
Firmware debugging experience (JTAG)
-
Experience with debugging C programs (GDB, LLDB, Valgrind)
————————————————————————
Junior Simulation Developer
The AOCS Simulation Developer is responsible for developing Python simulations of the AOCS and other spacecraft subsystems using our in-house simulation framework led by the AOCS team (but also used by other sub-teams). This simulation serves to validate the control system’s pointing performance, imaging performance, power generation budgets, fault modes and many other aspects of the spacecraft and mission.
Required Skills/Experience:
-
Experience with object-oriented Python
-
Experience with Git
————————————————————————
Senior Simulation Developer
The AOCS Simulation Developer is responsible for developing Python simulations of the AOCS and other spacecraft subsystems using our in-house simulation framework led by the AOCS team (but also used by other sub-teams). This simulation serves to validate the control system’s pointing performance, imaging performance, power generation budgets, fault modes and many other aspects of the spacecraft and mission.
Required Skills/Experience:
-
Completion of classical mechanics, multivariable calculus, and a statistics course (or have equivalent knowledge, see below)
-
Completion of a control systems course or have equivalent knowledge (see below)
-
Fluent in object-oriented Python
-
Experience with using Linux (and WSL)
-
Experience with software development team processes (pull/merge requests, code review, testing, etc.)
-
Experience with NumPy, SciPy
-
Knowledge of numerical and statistical methods for simulations
-
Knowledge of common sensors and actuators
-
Knowledge of control theory and algorithms used in industry (PID, EKF, etc.)
-
Knowledge of rigid body (3D) dynamics and kinematics
-
Knowledge of orbital dynamics
As an Asset:
-
Knowledge of CubeSat (or spacecraft) AOCS/ADCS subsystems
-
Experience with Astropy, Skyfield, and other Python astrodynamics libraries
-
Knowledge of space environment and related models
-
Experience with control systems, state-space models, and state estimation
-
Experience with modelling hardware behaviour in simulation
-
Experience with physics simulations
————————————————————————
Hardware Developer
The AOCS Hardware Developer is responsible for developing the AOCS sensor PCB for spacecraft among other PCBs. This role will include responsibilities for all stages of the PCB development cycle, including:
-
Requirement specification
-
Schematic capture
-
Layout
-
BOM
-
Manufacturing
-
Testing and Validation
Required Skills/Experience:
-
PCB design experience (Altium, KiCAD, Eagle)
-
Intuition of electrical concepts and electrical circuit design
-
Familiarity with routing serial communication protocols (I2C, SPI, UART, etc.)
-
Familiarity with common electronic workbench tools including multimeters, oscilloscopes, signal generators, soldering irons, and solder extractors
As an Asset:
-
Knowledge of common sensors and actuators, including their interfaces and electrical characteristics (IMU, Mag, Gyro, Sun sensors, Photodiodes, Motors)
-
Knowledge of electromagnets and inductors
-
Experience in PCB fabrication process and parts procurement
Application Process
The first step in the application process is to complete the application form linked at the top and bottom of this page.
If we believe you may be a good fit for the team, we will invite you for a 30 to 45-minute interview so that we can get to know you and chat about what you hope to gain from being on the team.
We will email all applicants with their status. If you have not received an email from us after one week, please email captain@ubcorbit.com.
Thank you for your interest in UBC Orbit—we look forward to reading your application!