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.
Lead Engineer 2 developing mechanical component designs for nuclear plants at GE Vernova. Collaborating with global teams to deliver high - quality engineering solutions.
Lead Engineer 1 contributing to design of nuclear plant components. Collaborating globally to deliver high quality engineering solutions for BWRX - 300 projects.
Principal Engineer for Verification, Validation, and Test Automation responsible for defining V&V strategy and ensuring product reliability at GE Vernova. Lead technical leadership and verification processes across global teams.
Principal Embedded Software Engineer at GE Vernova driving improvements in embedded software quality and acting as Design Authority. Collaboration with global teams to enhance engineering practices.
Principal/Staff Engineer responsible for leading development efforts at Brillio. Designing technical solutions and providing architecture leadership for clients' digital strategies.
Principal Fullstack Software Engineer leading architecture and delivery of cloud - native systems at Wizeline. Collaborating with clients to drive business transformation through AI - powered solutions.
Principal Engineer for Verification, Validation & Test Automation in GE Vernova's Grid Automation. Leading V&V strategies to enhance product performance and reliability in green energy transition.
Senior Technical Leader for Control & Protection design helping integrate renewable energy markets. Bridging R&D and project teams to ensure technical standards and best practices.
Lead Engineer managing turbine structure and rotor - related technical issues at GE Vernova. Delivering solutions, collaborating with teams, and ensuring customer satisfaction through technical excellence.
Lead Engineer for designing nuclear plant components within a global team, delivering high quality engineering solutions. Requires 5 years experience in mechanical design, ideally within the nuclear industry.