‹ All jobs
Embedded Software Engineer (LDN)
<div><span style="font-size: 16px;">For over four decades, Cirrus Logic has been propelled by the top engineers in mixed-signal processing. Our rockstar team thrives on solving complex challenges with innovative end-user solutions for the world's top consumer brands. Cirrus Logic is also known for its award-winning culture, built on a foundation of inclusion and fairness, meaningful community engagement, and delivering enjoyable employee experiences at every turn. But we couldn’t do it without our extraordinary workforce – and that’s where you come in. Join our team and help us continue to make Cirrus Logic an exceptional place to grow your career! </span></div><div><br></div><div><span style="font-size: 16px;">We’re looking for an Embedded Software Engineer who thrives close to the hardware and enjoys building high-performance, reliable firmware for DSP architecture and microcontrollers (e.g., RISC V and Arm Cortex M/A). You’ll design and implement real-time embedded software, optimize compute-heavy pipelines, and collaborate with hardware and systems teams to bring products from concept to production.</span></div>
<div> </div>
<div><span style="font-size: 16px;">This role suits someone who can move comfortably between architecture/design, low-level firmware, and performance tuning—especially where latency, throughput, power, and determinism matter.</span></div><br><strong>Key Responsibilities: </strong><br>
<li>Design, implement, and maintain embedded firmware for DSP cores and MCUs (RISC V and/or Arm).</li>
<li>Build and optimize real-time signal-processing pipelines (fixed-point and/or floating-point), potentially including FFTs, filters, modulation/demodulation, codecs, feature extraction, or control loops.</li>
<li>Develop firmware using a mix of C/C++ (and selective assembly where appropriate), with strong focus on performance, memory, and power optimization.</li>
<li>Work with SoC/board peripherals: DMA, timers, SPI, I²C, UART, I²S/TDM, PWM, GPIO, and relevant bus fabrics.</li>
<li>Bring up new hardware: boot flows, clocks, memory maps, interrupt vectors, peripheral init, and early validation.</li>
<li>Implement and debug drivers and RTOS components (e.g., Zephyr or equivalent), including task scheduling, synchronization primitives, and ISR design.</li>
<li>Develop test strategies: unit tests, hardware-in-the-loop tests, test automation, and manufacturing/production diagnostics.</li>
<li>Use debugging/profiling tools: JTAG/SWD, logic analyzers, oscilloscopes, trace (ETM/ITM), and cycle-accurate profiling when available.</li>
<li>Collaborate cross-functionally with hardware, FPGA/ASIC, systems, and application teams to define requirements and interfaces.</li>
<li>Contribute documentation: architecture notes, interface specs, timing budgets, work packages, and bring-up guides.</li>
<li>Participate in code reviews and help establish best practices for embedded quality, safety, and maintainability.</li>
<br><strong>Required Skills and Qualifications: </strong><br>
<li>Strong professional experience developing embedded firmware in C/C++ for MCUs and/or DSPs.</li>
<li>Hands-on experience with RISC V and/or Arm architecture (Cortex M/A), including interrupts, memory, caches, and performance characteristics.</li>
<li>Solid understanding of embedded software fundamentals:</li>
<li>register-level programming, memory-mapped I/O</li>
<li>concurrency (ISRs, RTOS tasks), race conditions, timing determinism</li>
<li>fixed-point arithmetic, numerical precision, and overflow/underflow management</li>
<li>Proven ability to opti