Bachelor's degree in Computer Science, or equivalent practical experience.
5 years of work experience in development, testing and deployment of consumer electronics/embedded systems.
Experience with embedded programming in C/C++
Experience with embedded systems, kernel, Unix/Linux environments, and the development of Linux device drivers or firmware.
Preferred qualifications:
Experience working with hardware designers/reading schematics. Experience with interface protocols (e.g., USB, SPI, I2C, UART, UFS, PCIe) - Software stacks, Drivers; and System Memory Drivers
Experience in computer science, with competencies in data structures, algorithms, and software design.
Experience with fundamentals of Bootloaders, SoC low power management and security frameworks.
Performance analysis and optimization experience.
Knowledge of ARM or x86 assembly, system BIOS, Linux kernel, device drivers. Experience with ARM and/or other low-power SoC architectures.
Demonstrated knowledge of embedded systems development, RTOS concepts, device drivers and hardware/software integration.