- Deep knowledge of the C programming language (C89, C99).
- Experience in development of embedded software for the MIPS and ARM architectures in Linux environment.
- Experience writing device drivers for the Linux kernel.
- Experience with "bare-metal" hardware (STM32)
- Familiarity with low level concepts such as C runtime, first-stage bootloader, linker scripts, executable segments.
- Experience with hardware features such as memory-mapped I/O, IRQ handling, DMA, the SPI protocol.
- Familiarity with various libc implementations (uClibc, glibc).
- Practical knowledge of ARM, MIPS and Z80 assembly languages.
- Practical knowledge of the Git and SVN version control systems.
- English proficiency - fluent (Mastery C2 - Level 3 Certificate in ESOL International).
- Polish proficiency - native speaker.
- German proficiency - communicative.