Careers

Netronome is a company founded by networking engineers and managed by industry experts with an accomplished and motivated workforce. Netronome offers an exciting and collaborative workplace where learning and working in a fast-paced environment awaits you. Netronome’s compensation package offers first class benefits that includes company paid group medical, dental, vision, disability, life insurance, Flex-Spending Accounts (FSA), 401(k), holiday pay, generous paid time off and stock options. Please send your resume to careers@netronome.com.

Netronome is an Equal Employment Opportunity/Affirmative Action Employer.

To see open positions in each location, please click the "N" button on the map.

World map

Principal Software Engineer

Santa Clara

Description

Netronome Systems, Inc. seeks a Principal Software Engineer to work in our Santa Clara, CA office and to lead the team of software engineers responsible for the design, development, testing, debugging and support of high-performance embedded networking microcode written for a highly parallelized, multi-threaded, many-core hardware architecture, including microcode acceleration of Open vSwitch (OVS) by means of hardware offload of Linux Kernel flow classification, processing and caching, as well as other embedded systems software development. The candidate will participate in the design and implementation of new emerging networking standards in Software-Defined Networking (SDN), Network Functions Virtualization (NFV), and OVS, as well as ensure that architecture meets functional requirements and performance goals. The candidate will implement design in microcode and verify performance requirements using realistic network traffic loads while working with industry experts to ensure compatibility with the appropriate standards bodies' specifications.

Responsibilities

Must know (from any completed university-level coursework, seminars, workshops, or real-world, hands-on experience):

  • Embedded systems and embedded programming skills (C/C++);
  • Microcode software development for IXP/NFP hardware architecture (Microcode assembler);
  • Domain specific packet processing language;
  • One of the following scripting languages: bash, bourne, shell, Perl, or Python;
  • Development/debugging on Linux platform (revision control systems, build systems, troubleshooting and debugging);
  • Major network protocols (IP, ARP, ICMP, TCP, and UDP); and
  • High-performance network device internals (parsing, classifying, filtering, traffic forwarding, load balancing, packet manipulation, and flow cache acceleration).
Requirements
  • Must have a Master's degree (or foreign equivalent) in Computer Science, Computer Engineering, Information Technology, or directly related field; plus three (3) years of software engineering experience.
  • Alternate requirement: Bachelor's degree (or foreign equivalent) in Computer Science, Computer Engineering, Information Technology, or a directly related field of study plus five (5) years of post-baccalaureate and progressively responsible years of software engineering experience.

Send resume to J. Adams, Netronome Systems, 3159 Unionville Road, Suite 100, Cranberry Township, PA 16066.

Apply Now

Software QA Engineer

Cape Town/Centurion

Description

The QA Engineer's primary task is to perform white-box and blackbox testing of the company's hardware and software products. This individual will build test software to expose API defects in production level code as well as defects at the component and feature levels.

Responsibilities
  • Review engineering technical specifications and attend review meetings
  • Meet with developers to discuss technical aspects of features
  • Design and author test cases for assigned feature areas of a release
  • Design and build testing tools for automated unit, functional, and performance testing
  • Develop Linux and Windows based test applications to exercise and validate firmware and embedded software
  • Define and execute test procedures
  • Work with developers on reproducing and researching defects
  • Track and manage defects on a day to day basis
  • Setup and maintain lab test environments
  • Provide QA Support for Field trials of various products
  • Participate in all activities accordingly to ensure on-time deliverables are met including day-to-day planning and coordination with other QA engineers and software/hardware developers
Requirements
  • MS degree in Computer Science or Computer Engineering or a BS Degree and two years of experience
  • C/C++ programming and scripting (Perl/Python/Shell) experience
  • Working experience in Linux open source development (gcc, g++, make)
  • Networking Protocols (TCP/IP, UDP, SSL) experience
Apply Now

Software Engineer

Cape Town/Centurion

Description

The Software Engineer will be responsible for the design, development, debugging, testing and support of high-performance networking software. Contributions to include embedded and/or system software development.

Responsibilities
  • Construct data structure and algorithms
  • Write quality code
  • Explore innovative technical solutions
  • Test and debug code
  • Contribute to feature definition and design
  • Examine feature feasibility and estimate development time
  • Work with the team to meet project deadlines
Requirements
  • Master’s or Bachelor’s degree in Electronics Engineering, Computer Engineering or Computer Science
  • Proficiency with embedded/systems programming skills (C/C++) and scripting languages (e.g. bash, bourne shell, Python)
  • Experience with development and debugging on a Linux platform - gcc/g++, revision control systems, build systems, troubleshooting, debugging and profiling tools
  • Experience with embedded systems and embedded software development
  • Experience with multi-threaded programming
  • Knowledge of major network protocols such as TCP, IP, HTTP, Ethernet, ARP, ICMP, UDP as well as typical network device operations such as parsing, classifying, filtering and forwarding traffic
  • Knowledge of implementation of network protocols and device driver/network stack internals for Linux and/or other embedded operating systems
  • Familiarity with software development methodology best practices and processes such as waterfall, agile, and software release cycles
Apply Now

Software Engineer (Kernel Development)

Description

Netronome is a proud member of the Linux kernel community. We have participated in a number of exciting new efforts in the networking stack. Our kernel engineers are also participating in development of embedded products. Netronome is currently seeking Software Engineers. The Software Engineer will be responsible for the design, development, debugging, testing and support of high-performance networking software. Contributions to include embedded and/or system software development.

Responsibilities

The Software Engineer will be expected to work with other software developers and hardware developers at Netronome to design and develop host code and associated drivers (for Netronome SmartNICs) for popular server operating systems e.g. Linux. Most, if not all of the code developed is expected to be submitted upstream to the Linux (or equivalent) kernel mailing lists. The Software Engineer will construct data structure and algorithms; write quality code; explore innovative technical solutions; test and debug code; contribute to feature definition and design; examine feature feasibility and estimate development time; work with team to meet deadlines. Performing any and all such other professional duties or tasks as may be required.

Requirements

• Master’s or Bachelor’s degree in Electronics Engineering, Computer Engineering or Computer Science

• Experience working with the upstream community

• Knowledge of major network protocols such as TCP, IP, HTTP, Ethernet, ARP, ICMP, UDP

• Very good understanding of Linux internals

• Experience with CPU and memory architectures

• Experience developing high quality C code

• Experience working on device drivers

• Knowledge of basic bash, Python

• Experience with upstreaming patches preferred

• Experience working with Linux networking stack preferred

• Experience with advanced networking knowledge preferred

• Experience working on Linux-based embedded systems preferred

• Compiler knowledge preferred

• Experience working with complex architectures and heterogeneous systems preferred

• Exposure to eBPF preferred

• Experience working with ARM architecture preferred

Benefits

• Upstream work

• Flat management

• Appreciation for employee initiatives

• Attending conferences

Apply Now