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.
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 softwareEssential 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 subjectDesirable 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 containerisationApply today with an up to date CV and a member of the KO2 team will be in touch to discuss