Principal Embedded Developer - C/C++ & Systems Programming
Key Responsibilities:
- Design, develop, and optimize high-performance device drivers for embedded Linux systems across multiple architectures.
- Port Linux kernel and custom drivers to new hardware platforms with optimal functionality and performance.
- Troubleshoot and resolve complex embedded software issues in diverse hardware environments.
- Implement firmware updates and enhancements for specialized embedded devices.
- Collaborate with hardware engineers to ensure seamless integration between software and hardware components.
- Contribute to system architecture decisions that shape next-generation embedded products.
- Perform comprehensive code reviews and provide mentorship to junior development team members.
- Create detailed technical documentation for all embedded systems components and implementations.
- Optimize embedded software for maximum performance, minimal memory footprint, and efficient power consumption.
Required Skills and Qualifications:
- 6+ years of professional C programming experience in embedded systems environments.
- Proven expertise with embedded Linux kernel architecture, subsystems, and development methodologies.
- Hands-on experience with Yocto Project (version 4.2+) including custom layer development and package management.
- Practical knowledge of FreeRTOS (version 10.5+) implementation, task scheduling, and real-time optimization.
- Deep understanding of microprocessor principles, memory management, and peripheral interfaces (SPI, I2C, UART, GPIO).
- Extensive experience with Linux driver development for various device categories and hardware platforms.
- Demonstrated expertise in low-level programming and hardware abstraction layer implementation.
- Proficiency with embedded debugging tools and techniques (GDB, JTAG, logic analyzers, oscilloscopes).
- Higher specialized education in Computer Science, Electrical Engineering, or a closely related technical field.
- English language proficiency at B1 level or higher for effective cross-functional communication.
- Practical experience with cross-compilation environments, toolchains, and build systems.
