Lead Software Engineer - Linux Device Drivers
- Full-time
Company Description
A Network Processor Company
Job Description
Key Responsibilities:
- Work as part of a dynamic software team on various Processors, ARM, Cavium etc.
- Software development work will include learning of propreitory hardware products, protocol stacks, existing software on those products and other related software tools. The development work includes supporting/maintaining existing software and development for new RFCs/protocols.
- Help customers in porting and optimizing their existing applications to OCTEON.
- Work also involves trouble shooting and resolutions
Qualifications
- Minimum: Bachelor’s Degree in Computer Science, Electrical Engineering, or equivalent. M.S. preferred.
- 5+years of experience in embedded system programming
- Excellent programming skills – C, C++ and assembly.
- Strong knowledge of networking protocol stacks (TCP/IP, UDP) and application level protocol (HTTP. FTP, SMB etc.)
- Knowledge of Ethernet and related switching architectures
- Proven experience with solving real-time embedded issues, including: threading, optimization, memory management, interrupt handling, etc.
- Experience in troubleshooting, performance analysis, and performance optimization for embedded systems.
- Linux kernel and device drivers (networking, PCI, etc.).
- Understanding of low level CPU architecture.
- Working experience with multi-core/multi-CPU environments.
- Knowledge of OCTEON/MIPS CPU architecture
- Previous experience in Deep Packet Inspection Software would be a plus.
- Effective interpersonal, teamwork, and verbal/written communication skills; able to interface internally and externally with all levels of the organization.
- Diligent, detail-oriented, and willing to take initiative and handle assignments with minimal supervision. Inherent sense of urgency and accountability; able to multi-task in a dynamic, fast-paced environment.