Embedded Software Engineer
Job Description
Embedded Software Engineer for small unmanned aircraft systems, this role focuses on creating and integrating low-level software across bare-metal, RTOS, and Linux environments. Proficiency in C/C++ and Python is required, with a leadership component directing small to medium development efforts within cross-functional teams.
Responsibilities
- Develop low level embedded software for bare-metal, RTOS, and Linux based systems
- Work on projects using C, C++, and Python within a Linux development environment
- Create prototypes to explore new concepts and support iterative development cycles
- Design and implement core algorithms and state machines
- Develop software for embedded devices running Linux, RTOS, or bare-metal environments, including cameras and sensor systems
- Perform low-level debugging with tools such as logic analyzers and oscilloscopes
- Troubleshoot and resolve software challenges across diverse use cases
- Provide technical leadership on small to medium sized projects or features, including design documentation, testing, code reviews, and collaboration with product and project managers
Requirements
- 2+ years of experience delivering commercial-grade software for embedded systems
- Bachelor’s or advanced degree in Computer Science, Electrical Engineering, Computer Engineering, or a related field
- Strong proficiency in C and/or C++ for embedded systems, including object-oriented and modern C++ practices
- Experience developing software for bare-metal, RTOS, or lightweight embedded Linux environments
- Hands-on experience with board bring-up, peripheral integration, and low-level hardware interaction
- Proficiency with debugging tools such as logic analyzers, oscilloscopes, and in-circuit debuggers (SWD/JTAG)
- Experience with ARM-based microcontrollers (e.g., STM32) or similar embedded platforms
- Familiarity with common embedded interfaces (I2C, SPI, UART, USB, etc.)
- Ability to design and troubleshoot algorithms, state machines, and real-time behaviors
- Experience working in Linux-based development environments with Git, build systems, and command-line workflows
Technologies
- STMicroelectronics microcontrollers (STM32), NVIDIA Jetson
- Bare-metal, RTOS, embedded Linux
- C, C++, Python
- Linux development environment, logic analyzers, oscilloscopes
- I2C, SPI, UART, USB
- Docker, Git
- FreeRTOS, Zephyr, NuttX
- SWD/JTAG
Benefits
- Dental insurance
- Health insurance
- Paid time off
Preferred Qualifications
- Experience with sensors, cameras, or other embedded peripherals
- Experience with NVIDIA Jetson or other heterogeneous compute platforms
- Experience with real-time operating systems such as FreeRTOS, Zephyr, or NuttX
- Proficiency in Python for tooling, scripting, prototyping, or test automation
- Experience using Docker as a primary development environment, including containerized toolchains and build environments
- Familiarity with networking or radio communication systems
Compensation
$110,000.00 - $165,000.00 per year
Location and Work Arrangement
- Location: Spanish Fork, UT (onsite)
- Work arrangement: In person