Senior Linux Device Driver Developer
Job Description
- Design, develop, and maintain embedded software for microcontroller and microprocessor-based systems.
- Work with RTOS platforms like ThreadX, FreeRTOS, and embedded Linux for system-level programming.
- Develop and port device drivers for interfaces such as UART, I2C, SPI, PCIe, and USB.
- Perform board bring-up activities including bootloader development, hardware-software integration, and system debugging.
- Implement and manage IPC mechanisms including message queues, shared memory, semaphores, and synchronization primitives.
- Handle interrupt management, kernel timing, and multithreading in embedded environments.
- Collaborate with hardware teams and use lab instruments (Oscilloscopes, Waveform Analyzers, Lauterbach) for debugging and validation.
- Optimize system performance and ensure reliability and scalability of embedded solutions.
Primary Skills
- Strong proficiency in C/C++ for embedded systems.
- Expertise in RTOS (ThreadX, FreeRTOS) and Linux kernel internals.
- Deep understanding of ARM architectures (ARMv7/ARMv8).
- Experience with device driver development and hardware abstraction layers.
- Knowledge of IPC, multithreading, mutexes, and interrupt handling.
Secondary Skills
- Familiarity with scripting languages (Python, Bash) for automation and testing.
- Experience with version control systems (Git).
- Exposure to CI/CD pipelines for embedded software.
- Understanding of secure boot, firmware updates, and system security.
- Knowledge of embedded testing frameworks and methodologies.
Qualifications
- Bachelor’s or Master’s degree in Electronics, Computer Engineering, Embedded Systems, or related field.
- Certifications in Embedded Systems or RTOS (preferred but not mandatory).
- Strong analytical and problem-solving skills.
- Excellent communication and teamwork abilities.
Bangalore, IN