C/C++ SOFTWARE DEVELOPER – EMBEDDED LINUX
Job description
In order to strengthen our embedded software development team, we are looking for experienced Embedded C/C++ Developers with thorough expertise in embedded Linux-based systems. If you are a C++ expert and know embedded systems programming and Linux systems inside-out we are looking for you!
You will:
- Design and implement software for a variety of devices – from resources limited to based on sophisticated SoCs
- Develop a complete software stack from top (application layer) to bottom (BSP)
- Interact with Product Owners and Architects in order to facilitate the specification of projects
- Be open to research and learn missing know-how as you go
- Work efficiently and effectively in an Agile development team
- Be responsible and accountable for consistency with the specification, quality, and performance
Must haves
- Solid knowledge of C++ (and C)
- Solid understanding of Linux operating system, especially on embedded systems
- Experience with Linux system programming
- Experience with Linux build systems e.g. Buildroot, Yocto
- Experience with bootloaders (U-Boot)
- Ability to prepare bootloader and Linux kernel to work on new HW platforms (BSP)
- Good understanding of embedded systems and embedded software
- Understanding of the embedded hardware interfaces, ability to debug hardware
- Fluency with GIT (or similar) source code versioning systems
- Good command of English
Nice-to-haves
- Knowledge of Rust, Python
- Thorough knowledge of data structures and algorithms
- Good understanding of object-oriented design principles and practices
- RTOS-related knowledge
- Experience with hardware-accelerated data processing (using HW components available in SoC)
- Experience with Gstreamer (multimedia framework)
- Experience with kernel device drivers
- Good understanding of TDD principles and practical knowledge of at least one testing framework