C/C++ Embedded Software Engineer
Summary
Develops low-level C/C++ embedded software for real-time image processing in imaging/lighting equipment, working with Linux/Yocto, hardware interfaces, and FPGA collaboration.
Project
A project for a major client in the film industry, specialising in imaging and lighting equipment solutions. Team-based work in the field of real-time image processing. Software operating between image sensors/lenses and the hardware layer, running on top of the operating system (Linux, Yocto) and drivers. We are looking for someone with a very good understanding of how images are processed, stored and transmitted at the low-level ‘image chain’ – excellent knowledge of registers and inter-process/inter-interface communication is required. Collaboration with other teams in the areas of software, hardware, FPGA and DevOps.
Requirements:
3-5 years’ experience as a C/C++ software developer in an enterprise setting
Experience with both ANSI C and modern C++ standards and specifications,
Understanding of embedded system architectures and hardware/software interfaces, inter-device communication protocols such as I2C, SPI, UART or Ethernet,
Experience in vision systems, drivers’ development, image processing (understanding of LUTs, 3DLUTs, filter kernels), real-time processing, camera/sensors calibration, image streams manipulation,
Experience developing software interacting with FPGA-based or other custom hardware, effective collaboration with hardware, FPGA and embedded engineering teams,
Basic knowledge about MATLAB and Python,
Nice to have: experience with Linux kernel, microcontrollers, OS drivers, QT
Experience with the whole software development lifecycle, processes and continuous integration, Git,
Master’s degree in computer science, information systems, or similar.
Excellent collaboration, time management and problem-solving skills,
Excellent communication (English, written and spoken), nice to have: German