Senior Embedded Firmware & Software Engineer

Novomorphic
Cardiff, United Kingdom
7 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

Cardiff, United Kingdom

Tech stack

Board Bringup
Abstraction Layers
Adobe InDesign
API
Artificial Intelligence
Automation of Tests
C++
Static Program Analysis
Software Quality
Software Debugging
Digital Electronics
Embedded C
Linux on Embedded Systems
Embedded Software
Ethernet
Firmware
Field-Programmable Gate Array (FPGA)
FreeRTOS
Design of User Interfaces
Hardware Interface Design
Joint Test Action (IEEE Standards)
Software Maintenance
Real-Time Operating Systems
Regression Testing
Software Tools
Reduced Instruction Set Computing
Software Engineering
Systems Architecture
System on a Chip
System Programming
System Software
Systems Integration
Universal Asynchronous Receiver/Transmitter
Scripting (Bash/Python/Go/Ruby)
Serial Peripheral Interface
State Machines
Low Latency
Integration Frameworks
Hardware Acceleration
TensorRT
Software Version Control
Hardware Debugging

Job description

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 developmentDrivers, HALs and board support package developmentFPGA/software interface design and integrationReal-time embedded system behaviourHardware bring-up and low-level debug workflowsEmbedded diagnostics, test tools and lab automationSecure and maintainable firmware practicesEmbedded software for intelligent hardware and edge AI systemsProductisation, release quality and technical documentationCross-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.

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 ZephyrSoC FPGA platforms such as Zynq, MPSoC, ARM, RISC-V or MicroBlazeFPGA/software interface developmentPython scripting for test automation and toolingSecure boot, signed firmware updates, cryptography or trusted firmwareMotor control, industrial control, sensors or edge AI systemsONNX Runtime, TensorRT, Vitis AI or edge AI runtime awarenessCI, automated tests, static analysis or structured software release practicesExperience building customer demos or proof-of-concept systemsExperience in start-up, R&D or product development environments Familiarity with any of the following tools or environments is useful: C/C++ embedded development environmentsGCC, Clang or vendor embedded toolchainsJTAG, SWD, UART and hardware debug toolsGit and version control workflowsPython-based test and automation workflowsLinux development environmentsRTOS or embedded Linux environmentsOscilloscopes, logic analysers and protocol analysersFPGA 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.

Benefits & conditions

Novomorphic's benefits package includes: 28 days' annual leave plus bank holidaysSalary sacrifice pension schemeAnnual discretionary bonus schemeLife assurancePrivate medical insuranceAdditional 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. #J-18808-Ljbffr

About the company

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

Apply for this position