Embedded Software Engineer
Job Description
Embedded Software Engineer for small unmanned aircraft systems, developing low-level embedded software across bare-metal, RTOS, and Linux using C/C++ and Python, while leading small to mid-size development efforts with cross-functional teams.
Responsibilities
- Create low-level embedded software for bare-metal, RTOS, and Linux-based systems
- Contribute on projects using C, C++, and Python within Linux development environments
- Build prototypes to test new concepts and support iterative development cycles
- Design and implement core algorithms and state machines
- Develop software for a range of 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
- At least 2 years 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, with experience in object-oriented and modern C++ development 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 such as STM32 or similar embedded platforms
- Familiarity with common embedded communication 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
Pay
- USD 110,000 - 165,000 per year
Work Location
- Spanish Fork, UT (onsite)