The Embedded Software Engineer will be responsible for developing high quality software solutions for small, unmanned aircraft systems and related peripherals and accessories. The role involves working across diverse software architectures and hardware platforms, including STMicroelectronics microcontrollers, NVIDIA platforms, bare-metal environments, real-time operating systems (RTOS), and embedded Linux systems. This position includes implementing algorithms and state machines as well as leading small to medium development efforts with cross-functional engineering teams. Prior experience with low level embedded systems, hardware, and Linux is required.
Primary Duties and 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 a range of embedded devices running Linux, RTOS, or bare‐metal environments, including cameras and sensor systems
- Perform low‐level debugging using tools such as logic analyzers and oscilloscopes
- Troubleshoot and solve software challenges across a variety of 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
Job Qualifications:
- 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 experience with 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 (e.g., 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
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
Company Description
We are a dynamic and innovative company specializing in UAV systems, committed to developing cutting-edge technology for diverse applications. The position involves working on projects for the Department of Defense, and U.S. citizenship is required.