Hands-on experience with embedded distributions such as YoctoProficient in Embedded C programming, including pointers, structures, linked lists, and assembly languageExperience in device driver development with standard protocols such as SPI, UART, USB, etc.In-depth knowledge of operating systems, kernels, and real-time operating systems (RTOS)Strong grasp of RTOS concepts such as mutexes, spinlocks, queues, signaling, events, deferred function calls, and multi-threadingProficient in Linux kernel and user spaceDeep understanding of operating systems, microprocessor, and computer architectureStrong analytical and debugging skills with emulator / simulator and JTAG experienceHardware and architectural expertise (e.g., processor architecture, cache, interrupts, memory barriers)Experience in leading a team of junior engineers across the software development life cycleResponsible for project delivery, accountability, and technical leadershipNice to Have : Knowledge or experience with inter-processor communication protocols, debug logging frameworks, heap management, and timer implementationsMinimum Qualifications :
- Bachelor's degree in Engineering, Information Systems, Computer Science, or related field and 2+ years of Software Engineering or related work experience
- OR
- Master's degree in Engineering, Information Systems, Computer Science, or related field and 1+ year of Software Engineering or related work experience
- OR
- PhD in Engineering, Information Systems, Computer Science, or related field
- 2+ years of academic or work experience with programming languages such as C, C++, Java
Skills Required
Rtos, Embedded C, Yocto, Debugging, Device Drivers, Linux Kernel