Embedded Software Engineer - Ethernet Switching

NVIDIA NVIDIA · Semiconductors · Austin, TX +1

Software Engineer role focused on developing and optimizing APIs, tools, and libraries for Ethernet switch SDKs, enabling customers to build data center switch/router software solutions, particularly for AI workloads. Requires strong C programming, algorithms, data structures, and OS concepts.

What you'd actually do

  1. Research, prototype, develop and optimize APIs, tools and libraries for ACLs, Switching, Routing, QOS, Telemetry, Analytics, and so on.
  2. Analyze, influence and improve the performance of software libraries, APIs, and tools according to good engineering practices.
  3. Collaborate with team members, architects, QA and support teams to resolve defects
  4. Assist our customers integrate the SDK software into their applications
  5. For senior levels, leading, and driving multi-functional teams on large feature developments across different layers.

Skills

Required

  • BS or MS degree in Computer Engineering, Computer Science, or a related field (or equivalent experience)
  • 8+ years of software development experience in data forwarding on Ethernet switching silicon and/or offload on SmartNICs.
  • Excellent C Programming skills
  • Strong analytical skills
  • Deep knowledge of algorithms
  • Proficient with data structures
  • Operating System concepts
  • Linux distributions

Nice to have

  • Experience with Merchant Silicon for Switching/Routing.
  • Contributions to SONiC, SwitchDev or Switch Abstraction Interface (SAI) or Linux kernel networking drivers or other networking projects.
  • Experience accelerating packet processing on Ethernet switching platforms.
  • Experience in virtualized networking and SRIOV, container networking concepts, networking functionality like NAT, Firewall and Load Balancer etc.
  • Knowledge of Linux kernel networking
  • Experience with control plane operation in areas like EVPN, Segment Routing etc.
  • Participation in the open-source community
  • Python programming skills

What the JD emphasized

  • 8+ years of software development experience in data forwarding on Ethernet switching silicon and/or offload on SmartNICs.
  • Excellent C Programming skills, with a keen eye for performance and writing optimized code.
  • Strong analytical skills, deep knowledge of algorithms and proficient with data structures
  • Operating System concepts like memory management, user-space vs kernel space, mutual exclusion, multi-threading and experience with Linux distributions