Senior Software Engineer
Senior Software Engineer – Modern C++ / Linux
Location: Oxford (hybrid, 3 days a week on site)
Salary: Up to £75,000 plus benefits
KO2’s client is a long-established UK manufacturer of advanced scientific instruments. Universities, research centres and industry around the world use them to study materials at the nanoscale.
Their systems support research in quantum computing, dark matter and new materials, so your software will be used in cutting-edge science. The business is growing, has a stable future, and still designs and manufactures everything in the UK.
The role
This is a new role created to grow the software team. As Senior Software Engineer, you’ll be a technical leader in an established backend team. You’ll help the Software Manager guide the team and develop less experienced engineers.
You’ll be the main technical authority for the backend software that controls the company’s instruments. It’s a Modern C++ (C++17) application running on a Debian Linux industrial PC that acts as a local edge server. It coordinates communication with pumps, valves, pressure gauges, temperature sensors and other devices, so the system reaches the state the user has asked for.
Key responsibilities
- Design, develop and maintain backend software in Modern C++ on Linux, within an Agile team
- Own and develop the APIs used by the web GUI and by customer scripts
- Write automated tests and unit tests in Python
- Take technical responsibility for solutions on specific projects, and run and take part in design reviews
- Contribute to architectural design and act as the team’s go-to expert in your areas of strength
- Lead, mentor and develop less experienced software engineers
- Work with scientists, engineers and product managers to turn requirements into tested software
- Support existing and new products, including technical support during installation and operation of customer systems
- Keep code repositories and documentation up to date so that others can maintain and extend the software
Essential skills and experience
- Strong commercial experience of Modern C++ on Linux. C++14 or newer required
- Experience of server-client architecture and backend development
- Python skills, particularly for automated testing
- Knowledge of Ethernet, TCP/IP and other communication protocols
- At least 5 years of commercial software development experience, with the technical depth to make high-level design decisions
- Excellent communication skills, including leading technical discussions and working with other departments
- A degree in Software Engineering, Computer Science, Mathematics or a scientific subject
Desirable skills
- Experience of publish-subscribe messaging, ideally WAMP
- Industrial or instrumentation protocols such as Modbus, CAN or RS232, and interfacing with devices such as pumps, sensors and actuators
- Developing application-level device drivers for Linux
- Cloud infrastructure (Azure or AWS) and containerisation
How to apply
To find out more, contact Laurence Powell or Andrew Knight at KO2 Engineering & Technical Recruitment
