Senior Software Engineer, Embedded Systems
| Estimated Pay info | Based on similar jobs in your market$80 per hour |
|---|---|
| Hours | Full-time |
| Location | Byron, California |
About this job
Job Description
Embedded firmware for microcontrollers and SoCs in a bare-metal and/or RTOS environment (FreeRTOS, Zephyr, or similar)
Driver development, peripheral integration, and board bring-up for custom hardware platforms
Real-time control loops and sensor fusion pipelines where timing and determinism are non-negotiable
Hardware debugging: oscilloscopes, logic analyzers, JTAG, and willingness to get comfortable with a schematic
C++ and Python tooling for testing, scripting, and automation around embedded targets
Development of models and emulators for aircraft components to ensure hardware behavior is faithfully represented in our cloud simulation framework
You probably have:
5+ years of professional embedded software development, with production firmware shipped on real hardware
Deep fluency in C and/or C++; Python for scripting and test tooling
Hands-on experience with at least one RTOS and with bare-metal development
Comfort reading schematics, using bench instruments, and debugging hardware/software integration issues at the signal level
Experience with communications protocols: SPI, I2C, UART, CAN, Ethernet
Strong opinions about code quality, testability, and the difference between software that works in the lab and software that works in the field
It’s a bonus if you have:
Experience in aerospace, defense, robotics, or other safety-critical domains
Familiarity with DO-178, MISRA, or other embedded software standards
Exposure to desktop tooling or visualization for hardware debug and test workflows
Experience with CI/CD pipelines for embedded targets (HIL, SIL, emulation)
Primary languages: C++ and Python
RTOS: FreeRTOS and bare-metal depending on target
Toolchains: GCC/Clang cross-compilers, CMake, custom build infrastructure
Version control and CI: Git, GitHub, cloud-based batch simulation and test runners
Modern AI coding tools used as productivity accelerators, not as a substitute for engineering judgment
We may use artificial intelligence (AI) tools to support parts of the hiring process, such as reviewing applications, analyzing resumes, or assessing responses and identifying potential inconsistencies or verification signals in application materials based on available information. These tools assist our recruitment team but do not replace human judgment. Final hiring decisions are ultimately made by humans. If you would like more information about how your data is processed, please contact us.