Design and develop device drivers, middleware, and Board Support Packages (BSP) for embedded OS environments, ensuring compatibility with both future products and existing deployments.
Create host software components for embedded operating systems, ensuring optimal performance and stability.
Collaborate within a development environment using revision control systems, issue tracking, and automated testing tools.
Expertise in Linux kernel development and heavy device driver implementation
Expertise in embedded C programming and debugging, with a focus on kernel software stability and device driver issues, using tools like GDB, JTAG, and T32.
In-depth experience with Linux kernel internals, including memory management, threads and processes, IPCs, synchronization, interrupts, and boot sequence.
Proficient in working with build systems such as Make, and utilizing GNU/GCC toolchains.
Hands-on experience with display drivers (HDMI, DisplayPort, HDCP), networking protocols (Ethernet, PCI Express, USB), and related hardware technologies.
Experience working with ARM and RISC-V architecture, including customizing drivers for specific customer needs.
Support the Applications team in providing customer assistance and troubleshooting as required.
Produce and maintain comprehensive technical documentation for both internal and external stakeholders.