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. We work on a mixture of R&D and product developments as required by our parent company.

As a team, we develop systems primarily targeted at power electronics applications. We work remotely and come together as required at our office for lab-based work or some face-to-face time. 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 lab-testing. Most weeks this might be a day or two but on occasion could be a full week.

We regularly work alongside our colleagues in Germany and therefore occasional travel is required. They are based in Regensburg, Bavaria, which is a rather nice place to visit and close 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 Linux kernel and user-space 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 occasional support, and we are writing more C++ as we move forward. Alongside the embedded software, we have some PC tools ans many 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 Redmine/Jira for change management (depending on the project). 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. We often work in an agile way although some projects for industrial applications will require more process: documentation, test etc.

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 a face-to-face some embedded C/C++ questions, and talk about object-oriented programming concepts. We als like you to present a project, or some code that you have worked on, and talk to us about it.

About You

Essential Skills