Description
We are looking for a highly skilled Embedded Software / Device Driver Engineer to develop and own Linux-based device driver software across our optical networking product portfolio.
The role involves working on low-level drivers, system software, and L1 datapath features, with strong collaboration across architecture, requirements, and customer-facing teams.
This position offers deep system exposure and the opportunity to influence system-wide features from concept to delivery.
Roles & Responsibilities
- Device Driver & Embedded Software Development
- Develop, enhance, and own Linux device driver software for embedded platforms.
- Enable and optimize features across software applications and L1 data-path areas.
- Work closely with requirements, architecture, and customer account teams with a strong customer-focused mindset.
- Design and deliver system-wide impactful features, from architecture and design through implementation and delivery.
- Debug, maintain, and enhance complex legacy codebases while developing new features.
Platform & Hardware Interaction
- Work on boot processes for x86 platforms with multi-OS support.
- Hands-on experience with U-Boot, Coreboot, BSPs, and board Develop and debug drivers for PCI/PCIe, SPI, DMA, I2C interfaces.
- Experience with BCM switch programming and networking hardware.
- Working knowledge of IP stack drivers, including io-pkt drivers.
Software Systems & Architecture
- Strong understanding of software system design, OS internals, and embedded Linux concepts.
- Experience with inter-process communication (IPC), multi-threading, synchronization, and scheduling.
- Collaborate in a cross-functional Agile environment to deliver high-quality embedded software products.
AI-Enabled Development
- Leverage AI tools extensively across development workflows to improve productivity and code quality.
- Hands-on usage of GitHub Copilot or similar AI-assisted tools for coding, debugging, documentation, and testing.
- Experience with AI-enabled development practices and automated testing in software development environments.
Required Skills & Qualifications
- Strong programming skills in C / C++ (mandatory).
- Working knowledge of Golang and Shell scripting is a plus.
- Solid experience in Linux kernel, device drivers, and embedded systems.
- Deep understanding of networking fundamentals and protocols.
- Ability to analyze system-level issues and drive solutions end-to-end.
(ref:hirist.tech)