Senior Embedded Software Engineer
TUALCOM
Reading - On site (Role will initially start in London E14 for training)
This role will be 5 days per week on-site.
Summary:
TUALCOM specialises in the design and manufacture of advanced RF navigation and communication systems. We are a global leader in commercial off-the-shelf (COTS) solutions, offering the best performance for size, weight, and cost on the market.
Our customers span the defence, law enforcement, and civil sectors, where we have established a strong track record through innovation, quality, and customer satisfaction. Following rapid growth in the UK, we are now poised to strengthen our presence both domestically and internationally.
We are seeking a Senior Embedded Software Engineer serve as a key technical authority and ambassador for TUALCOM in the UK.
Position Overview:
TUALCOM UK is expanding a rapidly growing R&D team with multiple active projects. We are looking for a mid-to-senior Embedded Software Developer to implement and optimize Kalman filter–based navigation / sensor-fusion algorithms on microcontrollers, primarily ARM Cortex and preferably STM32. You'll work close to hardware, own critical algorithm-to-firmware translation, and deliver robust, testable embedded code.
This is a fully onsite (5 days per week) UK role with regular interaction with our HQ engineering teams. You'll also work in close proximity to SMT production, enabling fast iteration cycles, rapid prototyping, and smooth transition from prototype to production.
Responsibilities:
Implement, tune, and maintain Kalman filter (EKF/UKF or classical KF) pipelines for navigation / estimation.
Develop production-grade embedded C/C++ firmware on ARM Cortex-M, preferably STM32.
Integrate and process sensor data (typical: IMU accelerometer/gyro, magnetometer, barometer, GNSS, wheel/odometry as applicable).
Design real-time data acquisition and filtering pipelines (timing, latency, sampling consistency, interrupt/DMA usage).
Optimize computational performance and memory footprint (fixed-point vs floating-point, CMSIS-DSP, matrix ops, profiling).
Build validation workflows: simulation playback, log capture, repeatable test scenarios, unit tests / HIL where possible.
Collaborate with hardware and systems engineers on sensor characteristics, calibration, and interface protocols (SPI/I2C/UART/CAN).
Produce clean technical documentation: filter states, models, assumptions, tuning parameters, test evidence..
Requirements:
Proven experience in embedded software with strong C/C++ on MCUs.
Demonstrable experience implementing Kalman filtering / estimation / sensor fusion in real systems (not just academic).
Strong understanding of:
Linear algebra basics used in filtering (matrices, covariance propagation)
Noise modeling, sensor errors, bias, drift, calibration concepts
Real-time embedded constraints (scheduling, interrupts, deterministic timing)
Debugging skills using common embedded tools (e.g., JTAG/SWD, logic analyzer basics, gdb, tracing).
Hands-on experience with STM32 family (CubeMX/CubeIDE, HAL/LL, FreeRTOS a plus).
Experience on ARM Cortex-M (M4/M7) and use of FPU, CMSIS, CMSIS-DSP.
Preferable: Prior navigation / inertial work:
Attitude estimation (quaternions, DCM)
IMU pre-integration, bias estimation
GNSS + IMU fusion, dead-reckoning, ZUPT, etc.
Preferable: Familiarity with verification methods (Monte Carlo sim, recorded dataset replay, HIL rigs).
Experience with version control and CI basics (SVN, code reviews).