We are seeking a Senior Software Engineer to join our client who specialise in underwater technologies, such as marine robotics and ROV's. As part of this role you will be the domain expert for one or more features or functions within a product, you will need to have deep knowledge of one or more technical stacks and / or algorithms within the navigation domain. You will closely partner with other team members and technical leads across engineering to plan, develop, test, and deliver software for a range of products. Specific Responsibilities Embedded Software Systems Understand the deployment of real-time operating systems for low latency sensing, computation, and communication. Design, develop, and debug complex embedded systems utilising a broad range of communication protocols and peripherals. Hardware in the loop testing, debugging, and validation. Contribute to architecture concepts, navigation tasks, and development projects as part of a cross-functional engineering team. Identify opportunities for software efficiency improvements through code re-use across a varied range of products and projects. Keep up to date on technical changes in their area(s) of technical speciality. Partner closely with other members across the engineering department to enable the fusion of hardware and software to add value to the customer. Able to explain complex technical concepts to non-technical team members to enable quick decision making within the business. Knowledge, Skills, and Experience: C/C++ (Object oriented coding) Able to code at expert in their C & C++ targeted at Linux based embedded systems. Experience of developing for and debugging on Linux based embedded devices, including cross-compiling for different hardware architectures, virtualisation and docker concepts. Industry experience in MATLAB development Software best practice Competent Can work in a structured software development environment that includes: Architecting & documenting designs. Following coding guidelines. Developing unit and system tests. Use source control systems and engage in peer code reviews. Qualifications Degree in Electrical / Electronic Engineering, Physics, Maths, Software Engineering, Robotics, Or demonstrable software engineering job experience and on the job training equivalent to a degree.