Senior Software Engineer

Cambridge, UK office-based or hybrid

About the company

We are a UK-based R&D subsidiary of our German parent company Maschinenfabrik Reinhausen GmbH, who are a specialist in the design and manufacture of power electronics for high power applications such as power transmission and renewable energy generation.

In Cambridge, we develop technology and contribute to industrial product developments. We are currently a small, friendly team looking to expand our software capability.

Role Summary

We are looking for an enthusiastic software engineer, experienced in embedded Linux development and C++ in particular. The role will involve working on various embedded systems and contributing to the full software development lifecycle.

As a team, we develop systems primarily targeted at power electronics applications. You can choose the working arrangement that suits you best, the only thing we ask is that you are able to attend the office when required for face-to-face discussion and testing on hardware that cannot be done remotely.

We regularly work alongside our colleagues in Germany and therefore occasional travel is required. They are based in Regensburg, Bavaria, which is a nice place to visit, near to Nuremberg and Munich.

Our embedded systems range from small microcontroller (e.g., STM32) based bare-metal and RTOS applications up to larger embedded Linux systems running on multi-core SoCs (e.g., AMD Xilinx Zynq Ultra-scale). Therefore, there is a good variety in the work ranging from programming hardware peripherals to writing multi-threaded user-land applications or kernel drivers for Linux. For this role we are looking for embedded Linux experience and any knowledge of power electronics control systems or motor drives would be an advantage.

We have legacy code written in C, which needs maintenance, but tend to write C++ for new applications. Alongside the embedded software, we have some tools and scripts written in Python, Bash and Awk etc. Being able to modify or create tools using them will be required.

We use a variety of toolchains, including Git for source control and Jira for change management. We use various debuggers and try to develop in an IDE/editor agnostic fashion where possible so you can use your favourite tools.

Being able to communicate is important, as the role will involve liaison with FPGA and power electronics engineers in order to elicit requirements for the code. The software is developed in an agile way although some testing on high voltage equipment requires more formal documentation of test cases.

If this sounds good, then we would love to meet you and show you more of the interesting work that we do here. We recognize that the traditional technical quiz-style interview doesn’t work for everyone, so we invite applicants to share with us their preferred way to show off their technical skills. We typically discuss face-to-face some embedded C/C++ questions, and talk about object-oriented programming concepts. We also like you to present a project, or some code that you have worked on, and talk to us about it.

About You

Essential Skills

Advantageous

Benefits