Hybrid Senior Embedded Software Engineer

Posted 1 hour ago

Apply now

About the role

  • Senior Embedded Software Engineer developing production C/C++ firmware for grid-connected systems. Collaborating with engineering teams to tackle complex embedded software challenges in a hybrid work environment.

Responsibilities

  • Develop embedded software for grid-connected inverters.
  • Design and implement real-time firmware from scratch for ARM Cortex-M microcontrollers; manage memory, peripherals, interrupts, and debug low-level issues.
  • Develop bare-metal and RTOS-based applications; reason about latency budgets, interrupt priorities, and timing edge cases in real-world deployments.
  • Implement real-time platforms where to deploy control algorithms and closed-loop firmware that operate within hard timing constraints and safety requirements for grid-connected applications.
  • Bring up new hardware platforms: configure peripherals, integrate sensors and actuators, validate functionality, and document the integration process.
  • Troubleshoot firmware–hardware faults in test rigs and in the field; reproduce issues, analyse logs, and deliver robust fixes without disrupting future deployed systems.
  • Work closely with hardware engineers, power electronics specialists, control engineers, and systems teams to define interfaces, timing budgets, and validation strategies.
  • Participate actively in code reviews, design discussions, technical analyses and help raise the standard of the codebase.
  • Contribute to safety and quality processes: able to identify regulatory standard compliance and ensure firmware aligns accordingly, maintain traceability, and document design decisions and test evidence.
  • Create and maintain technical documentation including requirements, design specifications, test reports, and architecture notes.
  • Work within clear timescales to deliver projects on time with ambitious product goals.

Requirements

  • A degree in electronics, embedded systems, software engineering, or related discipline, with demonstrated industrial experience.
  • You will have industrial experience building real-time embedded systems – developing, shipping and supporting firmware in complex products, from prototype through to deployment.
  • Solid understanding of real-time and deterministic embedded software design principles.
  • Demonstrable experience of working on embedded software projects using C/C++.
  • Mastery of C language and its underlying implementation cost function.
  • You can write efficient, predictable and maintainable code under strict constraints.
  • Proven experience developing bare-metal and RTOS applications, managing interrupt priorities and latency budgets, and debugging race conditions and timing issues in deployed real-time systems.
  • A firm grasp of interrupt handling, inter processor communications and synchronisation mechanisms.
  • Good knowledge of performance optimisation techniques and hardware/software interaction.
  • You can diagnose firmware–hardware faults using oscilloscopes, logic analysers, JTAG debuggers, and low-level inspection.
  • Strong communication and written skills.
  • Willingness to travel nationally and internationally for testing/commissioning when required.
  • It would be useful to have:
  • Understanding of power electronics, grid interconnection, or motor control firmware.
  • Demonstrable track record of developing for ARM-Cortex-M/R/A processors.
  • Proficiency in a scripting language (e.g. Python, TCL, Bash) for test automation, tooling or data analysis.
  • Experience architecting real-time Linux drivers or kernel modules; you understand device trees, OS-level interrupt handling, and the trade-offs between RTOS and embedded Linux.
  • Working knowledge of with MPSoC platforms (Xilinx Zynq); you have experience knowledge of FPGA languages such as VHDL or Verilog.
  • Experience with communication protocols such as UART, SPI, I2C, Ethernet and USB.
  • Ability to read PCB schematics and datasheets; experience testing/debugging PCBs.
  • Previously set up or maintained CI/CD for embedded code, written unit tests for firmware, or used static analysis tools to catch defects early.
  • Knowledge of digital closed-loop control applications.
  • You have written or reviewed firmware against safety standards.

Benefits

  • Employee Option Plan: You get equity in IONATE, so as we succeed so do you.
  • Private Medical & Dental Insurance: From day one, we provide you with full, comprehensive private medical and dental cover through Bupa. You also have the option to add any dependents to your cover. Please ask us for more details.
  • Company pension: a flexible, and sustainable pension product to help you plan for your future.
  • Career Development: It’s important to us that you have the opportunity for ongoing professional development and career growth. You will receive an annual budget for professional development and work with your team to set and reach goals every year.
  • Flexible working schedules: You will have the flexibility for work-from-home arrangements. Talk to us at the application stage about this.
  • Cycle to Work Scheme: Low carbon travel is important for everyone, so we have in place a cycle scheme to help you purchase a bicycle.
  • Slow travel: We believe in a low carbon future, so if you wish to travel by a lower carbon method – but it takes much longer than flying - we will give you an extra 2 slow travel days per year.

Job title

Senior Embedded Software Engineer

Job type

Experience level

Senior

Salary

£65,000 - £80,000 per year

Degree requirement

Bachelor's Degree

Tech skills

Location requirements

Report this job

See something inaccurate? Let us know and we'll update the listing.

Report job