Requirements
- Degree or Diploma in Computer Engineering, Computer Science, Electrical Engineering or related field
- More than 8 years of relevant professional experience
- Expert in C, C++ programming languages
- Linux Kernel and Driver programming experience
- Experience with real time and multithreaded applications
- Low level firmware programming experience targeting a microcontroller architectures (ARM, 8051, other)
- Experience with board-level debugging; use of logic analyzers, oscilloscopes, USB/Serial protocol capture tools
- Ability to clearly capture complex technical concepts in writing for both technical and general audiences
- Proven analytical and problem-solving skills
- Excellent written and verbal communication skills; proficiency in English
- In-depth understanding of drivers, interrupt handling routines, and kernel subsystems
Nice to Have
- Working knowledge of applied cryptography
- Experience applying principles of cyber security to operational technology and embedded systems
- Designing software systems running on multiple platform types
- Software systems testing methodology, including writing and execution of test plans, debugging, test scripts and tools
- Ability to effectively communicate product architectures, design proposals and negotiate options at management levels