Bachelor’s degree or equivalent practical experience.
5 years of experience with software development in C/C++ programming languages, and with data structures/algorithms.
3 years of experience testing, maintaining, or launching software products, and 1 year of experience with software design and architecture.
3 years of experience working with embedded operating systems.
Preferred qualifications:
Master's degree or PhD in Computer Science or related technical field.
Experience working with small-scale (limited memory/compute/power resources) embedded systems and hardware-in-the-loop or other on-device test strategies for embedded systems.
Experience working with driver-level, OS/RTOS-level, or bare metal systems programming. Experience working with Digital Signal Processing (DSP) fundamentals.
Experience working with radio communications technologies: 802.11 Wi-Fi, Bluetooth Low Energy (BLE), cellular networks (LTE/5G), also positioning technologies: GPS/GNSS, UWB, Wi-Fi RTT.
Experience working with message serialization formats (e.g. Protocol Buffers).
Experience working with machine learning in embedded systems (e.g. TinyML, TensorFlow Lite for Microcontrollers).