At a Glance
- Tasks: Design and implement high-performance embedded firmware for cutting-edge DSP architecture.
- Company: Join Cirrus Logic, a leader in mixed-signal processing with an award-winning culture.
- Benefits: Enjoy a hybrid work model, competitive salary, and opportunities for professional growth.
- Why this job: Make a real impact by solving complex challenges for top consumer brands.
- Qualifications: Experience in embedded firmware development using C/C++ and knowledge of RISC V or Arm architecture.
- Other info: Collaborative environment that values diversity and innovation.
The predicted salary is between 30000 - 50000 £ per year.
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!
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. 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.
Responsibilities
- Design, implement, and maintain embedded firmware for DSP cores and MCUs (RISC V and/or Arm).
- 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.
- Develop firmware using a mix of C/C++ (and selective assembly where appropriate), with strong focus on performance, memory, and power optimization.
- Work with SoC/board peripherals: DMA, timers, SPI, I²C, UART, I²S/TDM, PWM, GPIO, and relevant bus fabrics.
- Bring up new hardware: boot flows, clocks, memory maps, interrupt vectors, peripheral init, and early validation.
- Implement and debug drivers and RTOS components (e.g., Zephyr or equivalent), including task scheduling, synchronization primitives, and ISR design.
- Develop test strategies: unit tests, hardware-in-the-loop tests, test automation, and manufacturing/production diagnostics.
- Use debugging/profiling tools: JTAG/SWD, logic analyzers, oscilloscopes, trace (ETM/ITM), and cycle-accurate profiling when available.
- Collaborate cross-functionally with hardware, FPGA/ASIC, systems, and application teams to define requirements and interfaces.
- Contribute documentation: architecture notes, interface specs, timing budgets, work packages, and bring-up guides.
- Participate in code reviews and help establish best practices for embedded quality, safety, and maintainability.
Requirements (Required)
- Strong professional experience developing embedded firmware in C/C++ for MCUs and/or DSPs.
- Hands-on experience with RISC V and/or Arm architecture (Cortex M/A), including interrupts, memory, caches, and performance characteristics.
- 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.
- 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) and disciplined engineering practices (code reviews, CI).
Preferred Qualifications
- Languages: C, C++, (optional) assembly, Python for test tooling/scripts.
- Architectures: RISC V, Arm Cortex M/A, DSP cores.
- RTOS/OS: Zephyr, embedded Linux (optional).
- Tools: JTAG/SWD debuggers, GDB, OpenOCD/J-Link, logic analyzer, oscilloscope, trace tools.
- Practices: profiling, timing analysis, unit/integration testing, CI/CD for embedded.
- Experience with common DSP libraries/techniques (e.g., CMSIS-DSP, vendor DSP libs) and SIMD/vector optimization patterns.
- Experience with Zephyr, or embedded Linux on Arm.
- Familiarity with bootloaders, secure boot, OTA update mechanisms, and field diagnostics.
- Understanding of digital communications, or audio, processing domains.
- Exposure to safety/security standards (e.g., MISRA C/C++, IEC 61508, ISO 26262).
This Newbury or London 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. 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.
Embedded Software Engineer employer: Cirrus Logic
Contact Detail:
Cirrus Logic Recruiting Team
StudySmarter Expert Advice 🤫
We think this is how you could land Embedded Software Engineer
✨Tip Number 1
Network like a pro! Reach out to current or former employees at Cirrus Logic on LinkedIn. A friendly chat can give you insider info and maybe even a referral, which can really boost your chances.
✨Tip Number 2
Prepare for the technical interview by brushing up on your embedded systems knowledge. Make sure you can talk confidently about your experience with C/C++, DSPs, and real-time systems. Practice coding problems related to firmware development to show off your skills!
✨Tip Number 3
Show your passion for the role! During interviews, share specific projects where you’ve tackled challenges similar to those at Cirrus Logic. Highlight how you’ve optimised performance or collaborated with cross-functional teams to bring products to life.
✨Tip Number 4
Don’t forget to apply through our website! It’s the best way to ensure your application gets seen by the right people. Plus, it shows you’re genuinely interested in joining the Cirrus Logic team.
We think you need these skills to ace Embedded Software Engineer
Some tips for your application 🫡
Tailor Your CV: Make sure your CV is tailored to the Embedded Software Engineer role. Highlight your experience with C/C++, RISC V, and Arm architectures, and don’t forget to mention any relevant projects that showcase your skills in real-time embedded software.
Craft a Compelling Cover Letter: Your cover letter is your chance to shine! Use it to explain why you’re passionate about embedded systems and how your background aligns with Cirrus Logic’s mission. Be sure to mention your collaborative spirit and how you thrive in team environments.
Showcase Your Problem-Solving Skills: In your application, give examples of how you've tackled complex challenges in embedded firmware development. Whether it’s optimising performance or debugging tricky issues, we want to see your thought process and problem-solving abilities.
Apply Through Our Website: We encourage you to apply directly through our website. It’s the best way for us to receive your application and ensures you’re considered for the role. Plus, it shows you’re keen on joining our awesome team at Cirrus Logic!
How to prepare for a job interview at Cirrus Logic
✨Know Your Stuff
Make sure you brush up on your embedded firmware knowledge, especially in C/C++. Be ready to discuss your experience with RISC V and Arm architectures, as well as any specific projects you've worked on that involved real-time signal processing.
✨Showcase Your Problem-Solving Skills
Prepare to talk about how you've tackled complex challenges in previous roles. Think of examples where you optimised firmware for performance or solved tricky debugging issues. This will demonstrate your ability to think critically and creatively.
✨Familiarise Yourself with the Tools
Get comfortable with the tools mentioned in the job description, like JTAG/SWD debuggers and logic analyzers. If you can, practice using them beforehand so you can speak confidently about your hands-on experience during the interview.
✨Collaborate and Communicate
Since this role involves cross-functional collaboration, be prepared to discuss how you've worked with hardware and systems teams in the past. Highlight your communication skills and how you ensure everyone is on the same page when bringing products from concept to production.