Senior Embedded Firmware & Software Engineer

  • Novomorphic Ltd.
  • Cardiff, South Glamorgan
  • 08/06/2026
Full time Information Technology Telecommunications Python Software Engineer Testing

Job Description

Company Overview Novomorphic is a UK semiconductor and systems design company focused on system-first secure Edge AI.

We design and deliver advanced electronics where power, thermal performance, RF behaviour, latency, reliability, and security constraints matter. Our work spans edge AI systems, digital IC design, analogue and mixed-signal systems, FPGA platforms, embedded systems, and compound semiconductor technologies.

We work through focused delivery, paid pilots, demonstrators, partner-enabled projects, and CR&D programmes. Our aim is to turn complex technical work into practical engineering outcomes, strong partner confidence, and clear commercial proof points.

We are building Novomorphic from the ground up. We value technical excellence, ownership, curiosity, collaboration, and practical delivery.

The Opportunity This is a senior engineering role for an experienced embedded firmware and software engineer who wants to work close to hardware on advanced electronic systems.

You will develop firmware, drivers, HALs, board support packages, FPGA/software interfaces, diagnostics, test tools, APIs and demo software for intelligent hardware platforms.

The role is suited to candidates who can write robust low level software while also understanding hardware behaviour, product integration and practical delivery in a start up environment.

Role Overview Novomorphic is seeking a Senior Embedded Firmware & Software Engineer to help develop the firmware and software foundations for our FPGA enabled, AI enabled and smart electronic systems.

You will contribute to embedded firmware, hardware abstraction layers, drivers, board support code, real time control interfaces, diagnostics, integration software and customer ready demonstrators.

The role combines hands on embedded C/C++ development, hardware/software integration, firmware architecture, test tooling, technical documentation and close collaboration with FPGA, AI, analogue and system teams.

What You Will Do Embedded Firmware and Software Development
  • Design, develop, test and maintain embedded firmware in C/C++ for microcontrollers, SoCs and FPGA enabled platforms.
  • Develop drivers, board support packages, hardware abstraction layers and low level diagnostics.
  • Implement control software for FPGA registers, DMA, memory maps, hardware accelerators and device interfaces.
  • Work on deterministic timing, interrupts, state machines, boot flows and real time behaviour where required.
  • Develop host side tools, APIs, scripts and demo applications to support engineering and customer use cases.
  • Support secure firmware, signed updates, reliable configuration and maintainable software practices where relevant.
  • Produce clear technical documentation, interface notes, software design notes and review material.
Hardware Bring Up and Integration
  • Support new board bring up with test firmware, diagnostics and debug tools.
  • Work closely with FPGA and hardware engineers to debug interfaces, timing issues, sensors, power systems and communication links.
  • Use JTAG, serial logs, oscilloscopes, logic analysers and protocol analysers to diagnose hardware/software issues.
  • Create repeatable software tools for lab testing, data capture, regression testing and validation.
  • Help move prototypes from engineering builds to stable demonstrators and customer ready systems.
Productisation and Technical Delivery
  • Improve code quality, version control, documentation, release structure and maintainability.
  • Support customer demos, internal platforms, grant funded milestones and reusable engineering IP.
  • Mentor junior embedded software and firmware engineers.
  • Work across AI, FPGA, digital hardware, analogue hardware and system architecture teams.
  • Identify technical risks early, especially around integration, reliability, interfaces and software quality.
What You Will Develop Through the role, you will build and strengthen practical capability in:
  • Advanced embedded C/C++ firmware development
  • Drivers, HALs and board support package development
  • FPGA/software interface design and integration
  • Real time embedded system behaviour
  • Hardware bring up and low level debug workflows
  • Embedded diagnostics, test tools and lab automation
  • Secure and maintainable firmware practices
  • Embedded software for intelligent hardware and edge AI systems
  • Productisation, release quality and technical documentation
  • Cross disciplinary semiconductor, FPGA, AI and hardware collaboration
What We Are Looking For We are looking for a practical senior embedded engineer who can turn hardware into reliable, usable systems. You should be comfortable close to the hardware, but also care about clean software, repeatable test tools and stable customer demonstrators.

Essential Requirements
  • Strong experience in embedded firmware or low level software development.
  • Strong C/C++ programming skills.
  • Experience developing drivers, HALs, board support code or hardware facing software.
  • Experience with hardware interfaces such as SPI, I2C, UART, CAN, Ethernet, GPIO, ADC, DAC or similar.
  • Experience bringing up new boards or debugging hardware/software interfaces.
  • Good understanding of memory maps, registers, interrupts, timing and embedded system behaviour.
  • Ability to work across multidisciplinary engineering domains.
  • Clear communication and willingness to document technical work properly.
  • Ability to mentor junior engineers and take ownership of technical delivery.
Desirable Experience Experience through industry work, research, prototypes, coursework, lab work or practical development in areas such as:
  • Embedded Linux or RTOS experience, such as FreeRTOS or Zephyr
  • SoC FPGA platforms such as Zynq, MPSoC, ARM, RISC V or MicroBlaze
  • FPGA/software interface development
  • Python scripting for test automation and tooling
  • Secure boot, signed firmware updates, cryptography or trusted firmware
  • Motor control, industrial control, sensors or edge AI systems
  • ONNX Runtime, TensorRT, Vitis AI or edge AI runtime awareness
  • CI, automated tests, static analysis or structured software release practices
  • Experience building customer demos or proof of concept systems
  • Experience in start up, R&D or product development environments
Familiarity with any of the following tools or environments is useful:
  • C/C++ embedded development environments
  • GCC, Clang or vendor embedded toolchains
  • JTAG, SWD, UART and hardware debug tools
  • Git and version control workflows
  • Python based test and automation workflows
  • Linux development environments
  • RTOS or embedded Linux environments
  • Oscilloscopes, logic analysers and protocol analysers
  • FPGA development environments and register level debug tools
Previous start up experience is not required, but strong hands on engineering experience and practical delivery judgement are important.

We Value Engineers Who
  • Take ownership and follow through.
  • Enjoy solving difficult engineering problems.
  • Are curious, practical, and willing to learn quickly.
  • Can work independently without disappearing into a silo.
  • Collaborate well with engineers from different disciplines.
  • Communicate clearly, especially when raising risks or blockers.
  • Are comfortable in a start up environment where priorities can move quickly.
  • Want to build real engineering capability, not just write documents or papers.
What Success Looks Like Early success in this role means:
  • Strong engagement with onboarding, firmware delivery and technical integration.
  • High quality delivery on assigned firmware, driver, HAL, integration or documentation tasks.
  • Active participation in design reviews, debug sessions and multidisciplinary engineering discussions.
  • Growing ownership of embedded software quality, firmware interfaces and system stability.
  • Improved bring up speed, demo reliability and software maintainability.
  • Meaningful contribution to customer projects, internal platforms and funded innovation programmes.
Why Join Novomorphic? At Novomorphic, you will:
  • Work on next generation semiconductor, edge AI, FPGA and intelligent hardware technologies.
  • Use industry standard engineering tools and workflows across semiconductor, FPGA, embedded and system design.
  • Learn directly from experienced semiconductor, FPGA, embedded, AI and systems engineers.
  • Contribute to real customer projects, internal platforms, reusable engineering IP and funded innovation programmes.
  • Gain exposure to advanced low power, intelligent, digital, mixed signal and compound semiconductor technologies.
  • Help strengthen the UK semiconductor and intelligent hardware ecosystem.
  • Build a long term career in advanced semiconductor and electronic systems engineering.
Benefits Novomorphic's benefits package includes:
  • 28 days' annual leave plus bank holidays
  • Salary sacrifice pension scheme
  • Annual discretionary bonus scheme
  • Life assurance
  • Private medical insurance
  • Additional benefits tailored to employee needs
Location and Working Model This role is based in Cardiff, Wales. Working arrangements may vary depending on project and business requirements.