Robotics and Motion Control Engineer
Role: Robotics Software Engineer
Location: Reading
WFH: Minimum 3 days in the office a week (hybrid and flexible working)
Salary: £30,000 - £45,000
Experience: This role could suit either a strong graduate with substantial practical software or robotics experience, or an early-career engineer with approximately one to three years of relevant commercial experience.
** This role is exclusive to Cortech Talent so you MUST apply via this advert **
The Role
We are looking for a Robotics Software Engineer to join our growing engineering team in Reading.
This role could suit either a strong graduate with substantial practical software or robotics experience, or an early-career engineer with approximately one to three years of relevant commercial experience.
You will develop, integrate and test software across our autonomous robotic platforms. This includes software running on embedded devices, central robot computers and operator interfaces, together with connections to sensors, actuators and cloud-based services.
You will begin by learning the architecture and technologies used throughout the robot, including the embedded stack, central computer system, operator control system and external interfaces. As your understanding develops, you will take increasing responsibility for implementing features, resolving faults and validating changes on physical platforms.
Typical projects could include:
Implementing new robot behaviours or mission functionality.
Integrating a new device into the existing robotics stack.
Developing a ROS 2 driver for a new camera or sensor.
Diagnosing and fixing a known software or hardware-integration fault.
Improving the reliability or test coverage of an existing subsystem.
Investigating problems discovered during testing or deployment.
Why join us?
Develop software for autonomous robots operating in real industrial environments.
See features progress from initial design through to operation on physical platforms.
Work across embedded systems, ROS 2, sensors, operator systems and cloud interfaces.
Gain practical experience diagnosing complex hardware-software interactions.
Develop valuable experience turning working prototypes into dependable deployed products.
Receive technical guidance while taking on increasing independence and ownership.
Work closely with a multidisciplinary engineering team on technically challenging products.
Key Responsibilities:
- Develop robotics software using modern C++ and Python.
- Design and implement ROS 2 nodes, hardware drivers and software interfaces.
- Deliver features from an agreed technical approach through implementation, integration and testing.
- Integrate cameras, sensors, actuators and embedded devices into robotic systems.
- Diagnose faults involving software, networks, sensors, hardware and physical behaviour.
- Write unit and integration tests for new and existing software.
- Validate changes on physical robotic platforms.
- Plan and conduct longer-term reliability testing where appropriate.
- Document testing procedures, evidence, results and known limitations.
- Investigate faults discovered during testing or after deployment.
- Participate in code reviews and provide clear, constructive feedback.
- Communicate implementation decisions, progress, risks and delays.
- Request reviews and follow-up work proactively.
- Contribute to improving the reliability, maintainability and deployability of the wider software stack.
Essential Skills & Experience:
- Practical programming experience in C++.
- Practical programming experience in Python.
- Confidence working in a Linux development environment.
- Experience using Git, branches and pull-request or merge-request workflows.
- A sound understanding of software engineering fundamentals, including modular design, debugging and maintainable code.
- Experience testing software through unit tests, integration tests or practical system validation.
- Strong analytical and problem-solving skills.
- A STEM degree or equivalent higher-education route in an area such as robotics, computer science, engineering, or another relevant discipline.
Experience gained through university projects, placements, personal projects, open-source work and employment will all be considered.
Useful Experience:
ROS 2.
Software development for physical robotic or embedded systems.
Developing or integrating hardware drivers.
Cameras, IMUs, LiDAR or other sensor technologies.
CAN or other hardware communication protocols.
Embedded software and microcontrollers.
Docker and containerised deployment.
Continuous integration and automated testing.
Navigation, localisation or mobile robotics.
Debugging faults involving both hardware and software.
Supporting software running on deployed robots or other physical products.
How You Will Work
You will be given an objective, relevant system context and broad technical guidance. You will then be expected to work through the implementation details, discuss important decisions and carry the work through integration, testing and completion.
We are looking for someone who:
Gives regular and straightforward progress updates.
Raises delays, blockers and uncertainty as soon as they become apparent.
Discusses significant technical decisions before committing to an approach.
Brings possible solutions or options when raising a problem.
Can make sensible implementation decisions within an agreed architecture.
Asks questions when context is missing without needing every task to be fully specified.
Requests reviews without needing to be chased.
Looks for useful work when blocked or underutilised.
Raises concerns constructively when an approach appears risky.
Responds professionally to pressure, disagreement and code-review feedback.
Is willing to perform careful and sometimes repetitive testing.
Values reliable and understandable software over unnecessary complexity.
Has the confidence to express a technical opinion and the humility to reconsider it when presented with better evidence.
Testing
Testing may include:
Unit testing individual software components.
Integration testing between ROS 2 nodes and subsystems.
Validating changes on complete physical robotic platforms.
Testing failure conditions and recovery behaviour.
Running long-duration tests on a staging platform.
Recording clear evidence of the testing performed.
Investigating and resolving issues identified after release.
We are interested in what you built, the decisions you made, how you tested it and what you learned. Relevant evidence may come from university projects, placements, employment, personal projects or open-source contributions.