Operating Systems: In-depth knowledge of operating systems concepts and architecture, particularly Linux/Android operating systems, integration of them into embedded hardware, and experience with device drivers, kernel modules, system calls, and system-level programming.
Embedded Systems: Experience with designing and developing software for embedded systems, including hardware abstraction, device drivers, and real-time processing. Familiarity with microcontrollers, sensors, and other low-level hardware components.
Performance Optimization: Experience with optimizing software performance for resource-constrained embedded systems, including memory management, process scheduling, and code profiling.