Software Engineer
- Discuss this with your agent
- Open in Claude
- Open in ChatGPT
Prepare application
- Draft this with your agent
- Open in Claude
- Open in ChatGPT
Role details
Tech stack
+15 more
Job description
Contract Software Engineer / Robotics Engineer role working on the development and integration of advanced robotic systems for both military and civilian applications. Role would suit a Software Engineer / Robotics Engineer / Systems Engineer with strong C++ programming experience and a background in systems integration, embedded software or real time systems. Integrating third-party payload systems into the vehicle platforms, ensuring reliable communication, control and coordination between hardware and software systems.
The Software Engineer / Robotics Engineer Role Responsibility for the integration and software development of payload systems, including sensors, cameras, actuators and other specialist equipment, ensuring they operate effectively within a vehicle platform. Key responsibilities will include: Managing the end-to-end integration of third-party payload systems, from initial technical assessment and interface documentation through to testing and on-vehicle validation. Developing software abstraction layers and interfaces to allow different payload hardware and suppliers to integrate consistently into the autonomy platform. Designing and implementing state machines to manage payload operation, including initialisation, calibration, operating modes, fault handling and recovery. Developing payload behaviours and ensuring effective coordination with wider autonomous vehicle behaviours. Writing and maintaining communication drivers using CAN, serial and IP-based protocols. Defining and documenting software interfaces, communication requirements, system performance and diagnostic reporting. Developing diagnostic, logging and testing tools to identify, investigate and resolve payload integration issues. Implementing unit, integration and hardware-in-the-loop testing to ensure software reliability and performance. Working closely with external suppliers to resolve technical, firmware and communication issues. Supporting vehicle integration, testing and field trials, including debugging software on target hardware. Contributing to code reviews, technical discussions and the wider development of engineering capability within the team.
Requirements
You will be an experienced software engineer or robotics engineer with a strong interest in systems engineering, hardware integration and developing reliable software for complex engineering applications. You will ideally have: Strong modern C++ programming experience, preferably within a systems, embedded or real-time environment. Experience designing and implementing finite state machines, including fault handling and recovery mechanisms. Knowledge of hardware and network communication protocols, particularly CAN, serial communications and TCP/UDP. Experience of multi-threaded programming, synchronisation and thread-safe software design. An understanding of software performance, latency, determinism and efficient memory management. Experience developing and debugging software within Linux environments, ideally on target hardware. The ability to interpret technical documentation and work through complex hardware and software integration challenges. Experience using Git, CI pipelines and collaborative software development processes.
Apply for this position
This job is hosted externally. Click below to view the full posting and apply.
Prepare application
- Draft this with your agent
- Open in Claude
- Open in ChatGPT
Good distractions
Loading talks and stories from around this role…