Embedded Audio Firmware Engineer

Cirrus Logic
2 days ago

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Working hours
Regular working hours
Languages
English
Experience level
Senior

Job location

Remote

Tech stack

C
Algorithm Design
Systems Engineering
Unit Testing
C++
CMake
Profiling
Code Review
Computer Programming
Software Debugging
Embedded Software
Firmware
Github
GNU Linker
Groovy
Joint Test Action (IEEE Standards)
Python
Matlab
Machine Learning
Performance Tuning
Powershell
Software Architecture
Real-Time Operating Systems
TensorFlow
Signal Processing
Software Systems
Tcl (Programming Language)
Technical Data Management Systems
Toolchain
PyTorch
Tablet Computers
GIT
Integration Tests
Modeling and Simulation
Build Tools
Software Version Control
Jenkins

Job description

We have an exciting opportunity for a Senior Firmware Engineer to play a key role in the design and development of advanced audio signal-processing capabilities for our innovative products, used by the world's leading smartphones, tablets, and laptops.

This role is ideal for someone who enjoys working close to the hardware and is comfortable operating across the full stack-from software architecture and algorithm design through to low-level DSP firmware development and performance optimisation for throughput, power, and latency. You will collaborate closely with hardware and systems engineering teams across the business, helping to take products from early concept through to production readiness. Responsibilities:

  • Design, implement, and maintain embedded firmware for DSP cores.
  • Develop firmware using a mix of C/C++ (and selective assembly where appropriate), with strong focus on fixed point performance, memory, and power optimization.
  • Design, simulate, characterize and optimize algorithms to prove that they meet intended goals, and map to the constraints of custom hardware or DSP cores.
  • Develop test strategies: unit tests, test harnesses and lab setups to prove the capabilities and limitations of experimental algorithms, and provide manufacturing/production diagnostics.
  • Collaborate with our chip design, applications, systems and marketing teams to define requirements and interfaces.
  • Contribute to driving new ideas, creating IP, methodologies and techniques to improve existing software solutions.
  • Contribute to documentation and planning: design and requirement specs, interface specs, work packages, and bring-up guides.
  • Participate in code reviews and help establish best practices for embedded quality, and maintainability.
  • Use debugging/profiling tools: JTAG/SWD, logic analyzers, oscilloscopes, trace and cycle-accurate profiling when available.
  • Bring up new hardware: boot flows, clocks, memory maps, interrupt vectors, peripheral init, and early validation., + Firmware and algorithm design/development: C, C++, Matlab, assembly (optional).
  • Test tooling/scripting: Python, TCL (optional), PowerShell (optional), Groovy (optional)
  • Architectures:
  • DSP cores - Synopsys DSP cores, Tensilica Hifi DSP cores
  • Tools:
  • JTAG/SWD debuggers, GDB, OpenOCD/J-Link, logic analyzer, oscilloscope, trace tools
  • Practices:
  • profiling, unit/integration testing, Jenkins CI/CD, Git and GitHub workflows
  • Experience with common DSP libraries/techniques (e.g., CMSIS-DSP, vendor DSP libs) and SIMD/vector optimization patterns.
  • Experience of Machine Learning frameworks such as PyTorch or Tensorflow: how to train and tune a Machine Learning model, how to debug and test Machine Learning models.
  • Experience of implementing a Machine Learning model on a fixed-point embedded platform/DSP core.

This Newbury based role is a hybrid remote position and will follow a 2+ day in-office work schedule, with in-office days based on business needs and team preference.

You must be based within commutable distance of the work location listed on the job posting, or willing to relocate prior to beginning employment with Cirrus Logic.

#LI-PD1 #LI-Hybrid Export control restrictions based upon applicable laws and regulations would prohibit candidates who are nationals of certain embargoed countries from working in this position without Cirrus Logic first obtaining an export license. Candidates for this role must be able to access technical data without a requirement for an export license. We are unable to sponsor or obtain export licenses for this role. At Cirrus Logic, we believe that diversity drives innovation, and we are committed to encouraging an open and collaborative culture where different approaches, ideas, and points of view are respected and valued. We aim to promote a workplace where everyone can contribute irrespective of race, colour, national origin, religion or belief, gender or gender identity, sexual orientation, age, marital status, pregnancy status, or disability.

Requirements

  • Degree (1st or 2.1) or equivalent, in Electronics, Embedded Software, Signal Processing or related discipline
  • Strong professional experience of developing embedded firmware in C/C++ for fixed-point and floating-point DSPs and embedded platforms.
  • Ability to go from a Matlab algorithm design to an embedded firmware design in C/C++ for fixed-point and floating-point
  • DSPs and embedded platforms.
  • Proven ability to optimize firmware: cycle counting, memory layout, DMA usage, cache behavior, minimizing latency and jitter.
  • Experience in several of the following: filter design, adaptive filtering, audio / sensor signal processing; FFT/spectral based processing and machine learning in an audio context.
  • Solid understanding of embedded software fundamentals:
  • register-level programming, memory-mapped I/O
  • concurrency (ISRs, RTOS tasks), race conditions, timing determinism
  • fixed-point arithmetic, numerical precision, and overflow/underflow management
  • Proven ability to optimize firmware: cycle counting, memory layout, DMA usage, cache behavior, minimizing latency and jitter.
  • Ability to pick up a broad range of responsibilities from design and simulation to prototyping and implementation on custom hardware.
  • Ability to plan and work to a managed schedule across multiple functional teams.
  • Comfortable with toolchains and build systems:
  • GCC/LLVM-based toolchains, cross-compilation
  • CMake/Make, Meson, linker scripts, map files
  • Strong debugging skills with hardware and firmware:
  • JTAG/SWD debugging
  • root-cause analysis of timing and performance issues
  • Source control expertise (Git, GitHub) and disciplined engineering practices (code reviews, CI).

About the company

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!

Apply for this position