Design software architecture for both base system (system infrastructure) as well as applications with consideration of hardware resources and future application scalability. Creation and setup of linux operating system and SDKs for target embedded device, setting up of development environment for the development team. Alignment with product owner and writing specifications for development and the documentation of results. Alignment with hardware designer and other software developers and communicating software design guidelines. Developing of functional applications in C++ for control systems. Specifying and performing regular unit and integration tests. Core competencies: Proficiency in modern C/C++ and object oriented programming Embedded Linux, Yocto/Buildroot, Modern Bootloaders OOD, OOA, Software Design and Architecture for scalable embedded systems Remote development and debugging for embedded target devices Optional competencies: Linux Driver Development, Kernel Development Distributed Systems and Networking on Embedded Devices, Embedded Servers, modern APIs Field Communication Busses and Protocols (Modbus, CAN) Software Development on Microcontroller in C, preferably STM32 and ESP32 Development for real time systems, knowledge of fail-safe and stability measures Unit testing and automated integration testing Further skills: Development in Eclipse CDT Versioning with git Agile development Jira and confluence Modeling with UML Then we look forward to receiving your application. Your data will of course be treated confidentially.