- Design and develop real-time test and capture software on Linux systems using C++.
- Integrate and interface with high-speed SFPDP cards across multi-channel data pipelines.
- Architect and implement robust, scalable, and maintainable multi-threaded applications.
- Define and implement data sequencing and synchronisation logic to support deterministic capture and replay.
- Work with hardware teams to ensure seamless integration and timing alignment between software and capture cards.
- Lead and contribute to system integration, verification, and testing at both component and system levels.
- Conduct performance analysis, debugging, and optimisation of real-time systems.
- Document architecture, interface definitions, and test procedures to support handover and formal test activities.
- Extensive experience in C++ development in a Linux environment.
- Proficiency in C# for tooling, test interfaces, or Windows components as needed.
- Proven experience working with real-time data systems, preferably involving SFPDP or other high-speed digital protocols.
- Demonstrable skills in multi-threaded and concurrent programming.
- Experience with low-level I/O, DMA, or driver-level interactions with PCIe cards or similar.
- Familiarity with software sequencing frameworks or custom state machines for test execution.
- Strong experience with integration, system test, and debugging complex interactions between software and hardware.
- Strong understanding of software design principles, memory management, and performance optimisation.
- Experience with version control systems (e.g., Git) and CI/CD
- Experience with SFPDP (Serial Front Panel Data Port) specifically in defence, aerospace, or data acquisition contexts.
- Knowledge of FPGA-based data acquisition systems and synchronisation methods.
- Familiarity with unit testing frameworks, automated test rigs, or hardware-in-the-loop (HWIL) setups.
- Experience developing or integrating with real-time operating systems (RTOS) or using real-time Linux extensions.