Software Engineer (C++/Linux Real-Time Systems)

607793
  • Negotiable
  • Hertfordshire, England
  • Permanent

The Opportunity

Are you an experienced Software Engineer with a passion for building high-performance, real-time systems?

We are looking for a proactive and technically capable engineer to join a highly skilled development team responsible for designing, developing, integrating, and verifying advanced test and data capture systems. This is a hands-on role offering the opportunity to work on technically complex projects, developing software solutions that support the testing and validation of sophisticated, mission-critical technologies.

You'll be part of a collaborative team of software and systems engineers tackling challenging engineering problems using modern development practices and cutting-edge technologies. This role offers excellent opportunities for professional growth across a broad range of products, platforms, and technologies.

What You'll Be Doing

As a Senior Software Engineer, you will play a key role in the development of real-time software solutions operating within Linux environments.

Key responsibilities include:

  • Designing and developing real-time test and data capture software using C++ on Linux.
  • Integrating high-speed SFPDP cards into multi-channel data processing environments.
  • Architecting, developing, and maintaining scalable multi-threaded applications.
  • Implementing data sequencing, synchronisation, capture, and replay functionality.
  • Collaborating with hardware teams to ensure accurate timing and seamless hardware/software integration.
  • Leading and supporting integration, verification, and testing activities at both component and system level.
  • Performing performance analysis, debugging, troubleshooting, and optimisation of real-time systems.
  • Producing technical documentation including software architecture, interface definitions, and test procedures.

What We're Looking For

Essential Skills & Experience

  • Strong commercial experience developing software in C++ within Linux environments.
  • Knowledge and practical use of C# for tooling, interfaces, or supporting applications.
  • Experience developing real-time data processing systems.
  • Strong understanding of multi-threaded and concurrent programming concepts.
  • Experience working with low-level I/O, DMA, PCIe cards, or driver-level interfaces.
  • Experience developing sequencing frameworks, workflow engines, or state-machine-based execution systems.
  • Proven track record integrating and debugging complex software and hardware systems.
  • Strong understanding of software engineering best practices, memory management, and performance optimisation.
  • Experience using version control systems such as Git and familiarity with CI/CD practices.

Desirable Experience

  • Experience working with SFPDP (Serial Front Panel Data Port) technology.
  • Knowledge of FPGA-based data acquisition systems and synchronisation techniques.
  • Experience with Hardware-in-the-Loop (HWIL) environments, automated test rigs, or system test frameworks.
  • Exposure to Real-Time Operating Systems (RTOS) or real-time Linux extensions.
  • Experience using the LabVIEW suite of tools.

Why Join Us?

  • Work on technically challenging and innovative engineering projects.
  • Join a collaborative team of experienced software and systems engineers.
  • Gain exposure to a broad range of technologies including real-time systems, data acquisition, hardware integration, and advanced testing environments.
  • Be part of a supportive and inclusive culture that values innovation, continuous learning, and technical excellence.
  • Enjoy opportunities for professional development and career progression.

If you're a self-motivated Software Engineer who enjoys solving complex technical challenges and developing high-performance software solutions, we'd love to hear from you.

Imogen Henning Recruitment Business Partner

Apply for this role