Position- Principal Embedded Software Engineer
Location : Boulder, Colorado (onsite)
Job Description : Key Responsibilities
- Software firmware development : Designing, developing, and testing SW / FW for embedded systems using languages like C++, Python.
- Understand existing architecture : Analyzing and comprehending the current system architecture to effectively integrate new features and modifications.
- RTOS : Working with Real-Time Operating Systems, optimizing computation to achieve real-time processing performance on embedded platforms.
- Hardware and Software Integration : Ensuring seamless integration of firmware with hardware components for optimal system performance.
- Working with Embedded Hardware like board bring up, troubleshooting : Engaging in the initial power-up and porting SW / FW on new hardware, as well as diagnosing and resolving hardware-related issues.
- Debugging and Troubleshooting : Utilizing tools like JTAG, oscilloscopes, and logic analyzers to debug and resolve complex hardware-software integration issues.
- Cross-functional team collaboration : Working closely with hardware engineers, software developers, Quality, reliability and product managers.
- Technical Documentation : Creating and maintaining detailed documentation for full lifecycle design to launch.
- Software Lifecycle : Managing SW / FW source code using version control systems like Git, including branching, merging, and maintaining code repositories.
- Fulltime work from onsite Colorado, Boulder, USA
Key Skills required
10+ years of experience in Embedded SW development with C++ and working at a Senior or Principal levelWorking experience in C++ OOP concepts and advanced featuresHands on working with multi-process, multi-threaded application on LinuxProficiency in designing, implementing, and optimizing Digital Signal Processing algorithms.Experience optimizing algorithms for embedded targets that are memory and CPU resource constrained with optimizing computations for real-time processing.Experience with DSP hardware and software tools and strong debugging and troubleshooting skills with target tools and environments.Experience with real-time operating systems (RTOS) requirementsExperience with working with C++ mathematical libraries and tools that use linear algebra : matrices, vectors, numerical solvers, and geometric transformationsFamiliarity with microcontrollers, DSP processors, and interfacing to FPGA.Experience in agile development methodologiesExperience working with Git