Responsibilities
- Create and sustain firmware for DSP and MCU platforms, including RISC-V and Arm architectures.
- Construct and refine real-time signal processing workflows involving operations such as FFTs, filtering, modulation, codecs, feature detection, or control systems.
- Write high-performance firmware primarily in C/C++, with targeted use of assembly language for optimization.
- Prioritize efficiency in code related to processing speed, memory footprint, and power consumption.
- Interface with SoC and board-level components including DMA, timers, SPI, I²C, UART, I²S/TDM, PWM, GPIO, and internal buses.
- Support initial hardware deployment by configuring boot sequences, clocking, memory layout, interrupt handling, and early diagnostics.
- Develop and troubleshoot low-level drivers and real-time operating system modules, such as task management, synchronization, and interrupt service routines.
- Apply tools like JTAG/SWD, logic analyzers, oscilloscopes, and trace interfaces for debugging and performance analysis.
- Formulate testing approaches covering unit tests, hardware-in-the-loop validation, automated test frameworks, and production-level diagnostics.
- Collaborate with hardware, FPGA/ASIC, systems, and application software teams to align interface definitions and system requirements.
- Produce technical documentation including architectural notes, interface specifications, timing constraints, development tasks, and hardware initialization procedures.
Other
- Applicants must reside within commuting distance of the specified work location or be prepared to relocate before employment begins.
- Due to export control regulations, only candidates who can legally access technical data without requiring an export license may apply; sponsorship or license acquisition is not available for this role.
