Sai Software Design Engineer

NVIDIA NVIDIA · Semiconductors · Shanghai, China +1

Software Design Engineer role at NVIDIA focused on switch and router related software development, involving the full development cycle in an embedded environment using C/C++ and Linux networking. Requires strong programming, communication, and debugging skills, with knowledge of networking protocols and testing methodologies.

What you'd actually do

  1. Groundbreaking multi-protocol networking technology
  2. First tier features enablement
  3. Senior software developer as part of a networking oriented software development team
  4. Portable networking software implementation in an embedded environment (Ethernet switch/router product line)
  5. Full development cycle methodology (from design to final delivery to customer in high scale data centers)
  6. Develop code in industry leading open source environments

Skills

Required

  • Bachelor or above in Computer Science or Telecommunication Engineering
  • At least 5 years in networking programming
  • Communication protocols knowledge
  • C and C++ embedded programming experience
  • High technical understanding and learning skills
  • Specification, design, programming, integration and debugging abilities
  • Ability to understand, debug and improve 3rd party sophisticated code
  • Experience with testing methodologies
  • System wide perspective
  • Experience in development in Linux networking (user and/or kernel modes) and TCP/IP stack
  • Excellent English communication and leading skills
  • Routing / Bridging protocols knowledge
  • Scripting language like Bash or Python

Nice to have

  • Knowledge of router and switch design & architecture
  • Proven experience in a Gigabit Ethernet switching product development
  • Experience in network processor development environment and applications development
  • Proven track record to work in a multi-functional team environment and collaborate with teams in oversea sites
  • Self-motivated, ability to work with little definition and supervision while multi-tasking and prioritizing across a number of projects and initiatives

What the JD emphasized

  • networking programming
  • C and C++ embedded programming experience
  • High technical understanding and learning skills
  • Experience with testing methodologies
  • Linux networking (user and/or kernel modes) and TCP/IP stack
  • Routing / Bridging protocols knowledge