As a System Software Engineer, you must meet the following criteria:
- Excellent knowledge of C & C++ programming languages
- Excellent knowledge of systems architecture with a focus on ARM-based platforms (cache coherency, DMA, access to device resources, etc.)
- Experience in benchmarking and debugging embedded systems (gdb, perf, ftrace, etc.)
- Experience in developing Linux Kernel Drivers and User Space SW focused on interaction with HW
- Basic networking knowledge (Ethernet, IP, TCP/UDP, routing, NAT, etc.)
- Good knowledge of English (at least B2 level)
Beyond the criteria above, we would appreciate the nice-to-haves:
- Assembly language for ARM-based platforms
- Experience in developing software using DPDK libraries
- Experience in working with Systems-on-Chip (SOCs)
- Experience in working with Network Traffic Generators
- Experience in Pre-OS drivers development (U-Boot, UEFI, etc.)
Responsibilities
As a part of the project team, you will be responsible for:
- Developing low-level software using C and C++
- Collaborating with HW and FW architects to improve systems performance
- Participating in technical discussions with the team and the client regarding the architecture of the developed solution
- Fixing bugs efficiently and effectively, and finding workarounds for blockers
- Building and expanding the technical knowledge base