About The Position

The Principal Embedded Software Engineer will develop software and firmware for embedded systems, primarily using C++ and Python. The role includes understanding existing system architecture and integrating new features, working with real-time operating systems, and optimizing algorithms and computation for real-time performance on resource-constrained embedded platforms. The engineer will integrate firmware with hardware, bring up and port software to new hardware, and troubleshoot hardware and software issues. The position involves collaboration with hardware and software engineers, Quality, reliability, and product managers, as well as maintaining technical documentation and managing source code with Git. The role is onsite in Boulder, Colorado, with relocation accepted. It is described as a full-time position and a 6+ month contract.

Requirements

  • 10+ years of experience in embedded software development with C++, at a senior or principal level.
  • Experience with C++ object-oriented programming concepts and advanced features.
  • Hands-on experience with multiprocess and multithreaded applications on Linux.
  • Proficiency in designing, implementing, and optimizing digital signal processing algorithms.
  • Experience optimizing algorithms for embedded targets with memory and CPU constraints and real-time processing requirements.
  • Experience with DSP hardware and software tools, and strong debugging and troubleshooting skills in target environments.
  • Experience with real-time operating system requirements.
  • Experience with C++ mathematical libraries and tools involving linear algebra, including matrices, vectors, numerical solvers, and geometric transformations.
  • Familiarity with microcontrollers, DSP processors, and interfacing to FPGA.
  • Experience with Agile development methodologies.
  • Experience working with Git.
  • Ability to work onsite in Boulder, Colorado; relocation is accepted.

Responsibilities

  • Design, develop, and test software and firmware for embedded systems using languages such as C++ and Python.
  • Analyze existing system architecture to integrate new features and modifications.
  • Work with RTOS and optimize computation for real-time processing on embedded platforms.
  • Integrate firmware with hardware components to achieve optimal system performance.
  • Bring up boards and port software and firmware to new hardware; diagnose and resolve hardware-related issues.
  • Use debugging tools such as JTAG, oscilloscopes, and logic analyzers to troubleshoot hardware-software integration issues.
  • Collaborate with hardware engineers, software developers, Quality, reliability, and product managers.
  • Create and maintain detailed documentation throughout the design-to-launch lifecycle.
  • Manage software and firmware source code using Git, including branching, merging, and repository maintenance.
  • Design, implement, and optimize digital signal processing algorithms for embedded targets.
© 2026 Teal Labs, Inc
Privacy PolicyTerms of Service