Design and implement software of embedded devices and systems from requirements to production and commercial deployment Design, develop, code, test and debug system software Review code and design Analyze and enhance efficiency, stability and scalability of system resources Integrate and validate new product designs Support software QA and optimize I/O performance Provide post production support Interface with hardware design and development Assess third party and open source software C and C++ programming skills Microcontrollers, or MCUs, ARM, Microprocessors Linux operating system Software optimizations skills at the System on a Chip (SoC) level Real-time Operating Systems (RTOS) Device drivers Understanding of design patterns and embedded system design patterns Debugging skills Ability to work with existing codebases Interrupt-driven design Assembly programming language Hardware test equipment: oscilloscope, logic analyzer Experience in or ability to learn communication protocols. Relevant protocols to have at least an understanding of include I2C, Serial Peripheral Interface (SPI), USB, General-purpose input/output (GPIOs), Controller Area Network (CAN bus), Recommended Standard 232 (RS232), one-wire, Recommended Standard 485 (RS485) Ability to read a schematic Basic understanding of Internet of Things (IoT) and internet-based technologies Understanding of data structures Python programming language RISC-V instruction set architecture Performance-based remuneration with flexitime model and working time account 30 vacation days per year Attractive additional financial benefits such as vacation pay and health bonus Contribution to company pension scheme and occupational disability insurance Modern, international working environment Varied projects in a high-performance team Individual advancement through the Mühlbauer Academy by means of internal and external further training measures Company canteen with breakfast and lunch offers Good transport connections and parking spaces