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.