Senior Firmware Engineer
Spire Global
- Glasgow, United Kingdom
- Senior Level
- Bachelor's degree
- Posted
Skills
Required
- embedded
- Linux
- debugging
- Git
- FreeRTOS
- control systems
- scripting languages
- Python
- Bash
- Embedded C programming language
- Ubuntu
- Rust
- GNU
Preferred
- embedded firmware
- satellite systems
- serial protocols
- Version control
- development of interface tools
- improve system abstraction
Join Spire, a leading company in the commercialization of nanosatellite systems. As a Senior Firmware Engineer, you will play a crucial role in supporting various engineering disciplines by focusing on the embedded software aspects of our satellite systems. You will design, implement, test, deploy, and maintain embedded firmware, collaborate with other engineering functions, resolve on-orbit and on-ground issues, and write and maintain technical documentation. Enjoy a range of benefits, including flexible time-off, family leave, learning and development opportunities, and more.
Responsibilities
- Conception, implementation, testing, deployment, and maintenance of embedded firmware for satellite systems.
- Collaboration with other engineering functions to scope, architect, and design systems, and resolve on-orbit and on-ground issues.
- Implementation, optimization, and maintenance of various serial protocols, and development of interface tools to improve system abstraction.
- We are seeking an experienced Embedded Software Engineer to join our Platform team (folks looking after the spacecraft)
- Version control using Git
Requirements
- Proficiency with scripting languages like Python and Bash
- Mastery of Embedded C programming language
- Bachelor's degree in Computer Science, Electrical Engineering, or related field
- Experience developing on Linux (Ubuntu)
- Strong problem-solving skills, particularly in debugging embedded systems
- Excellent communication and teamwork abilities
Experience with version control systems (e.g., Git)
- Extensive experience with real-time operating systems (RTOS), specifically FreeRTOS
- A base level of mathematical knowledge (engineering mathematic or similar)
- Familiarity with serial protocols and implementations
- Experience with space systems or satellite technology
- Experience writing Rust for resource constrained environments (embedded Linux)
- Experience with embedded Linux
Knowledge of control systems and algorithms
- Familiarity working to coding standards and using static analysis tools
- Familiarity with manual testing procedures for embedded interface code
- FreeRTOS for real-time operating system implementation
Experience working with Arm Cortex Microcontrollers
- GDB for debugging, complemented by extensive use of serial and/or CAN debugging
- Experience with debugging techniques for systems without JTAG access, particularly for remote issue resolution
- GNU ARM Embedded Toolchain for code compilation
