Good experience of working in C and C++ in an embedded work environment or software application
5+ years of software engineering experience with demonstrated professional development in software design and development
Ability to understand and apply knowledge of object-oriented analysis, design, and programming techniques, especially in C++
Ability to direct the day-to-day technical activities of a small team of engineers
Previous experience working with real-time embedded development environments and ARM/Intel architecture
Desired qualification:
Experience developing software to meet safety and security standards such as IEC 61508 or IEC 62443
Experience developing software using a scripting language such as Python
Knowledge of communication protocols and technologies such as SPI, UART, I2C, Ethernet, USB, or PCI Express
Experience using compilers and toolchains targeting ARM and Intel processors.
Ability to read traces, use an oscilloscope, review board schematics
Experience developing device drivers or other similar low-level embedded software
Knowledge of modern ARM and Intel architectures
Experience working with embedded Hypervisors and developing embedded software in a variety of software environments such as bare metal, embedded RTOS, or Linux
Knowledge of basic cryptography principles
Advanced coursework or degree related to software engineering, embedded systems, operating systems, or computer architecture.