NetApp logo
NetApp Verified
Enterprise Software, Cloud Computing, Data Storage

Software Engineer

Morrisville, NCOnsiteFull TimePosted 1 month agoVisa sponsorship available

Is this role right for you?

Upload your resume and get a skill-by-skill breakdown — see exactly where you match, where you're close, and what to highlight. Not a mystery percentage.

Get a tailored resume highlighting what this role needs.

Required skills

  • ONTAP
  • QoS
  • Balanced Placement
  • SAN
  • block storage
  • Linux/Unix
  • multithreading
  • system internals
  • file systems
  • data paths

Nice to have

  • CI/CD pipelines
  • test infrastructure
  • modern development practices
  • mentoring junior engineers

Role summary

NetApp is seeking a Software Engineer for its ONTAP Engineering team, focusing on SAN and block storage solutions. The role involves designing, developing, and testing features for ONTAP's QoS, Balanced Placement, and SAN technologies. This individual contributor position requires strong technical depth, end-to-end feature ownership, and the ability to work with minimal supervision while influencing complex functionality. The ideal candidate will have 8-12 years of industry experience and a proven track record of delivering complex subsystems.

Job Summary

We are seeking a highly motivated Software Engineer to join NetApp’s ONTAP Engineering team, with a focus on SAN and block storage solutions. ONTAP is a feature-rich storage platform used in mission-critical environments across cloud, hybrid, and on-premises deployments.

In this role, you will design, develop, and test features that power ONTAP’s QoS, Balanced Placement, and SAN technologies. This advanced individual contributor position requires strong technical depth, end-to-end ownership of features and modules, and the ability to work with limited supervision while influencing the design, development, and maintenance of complex functionality.

Job Requirements

  • 8–12 years of relevant industry experience, with a proven track record of owning and delivering features for complex subsystems.
  • Design and develop innovative features for NetApp’s storage operating system.
  • Participate in all phases of the product development lifecycle, including design, development, debugging, testing, and customer support.
  • Demonstrate a solid understanding of Linux/Unix systems, multithreading, and system internals.
  • Understand file systems, data paths, replication, and high-availability systems.
  • Have experience with storage technologies, preferably SAN protocols such as FC, iSCSI, and NVMe-oF.
  • Possess strong proficiency in C, C++, and Unix/Linux system programming.
  • Exhibit excellent problem-solving and communication skills, with the ability to collaborate effectively across remote teams.
  • Analyze failures, debug complex issues across software layers, and drive root-cause resolution.
  • Be familiar with CI/CD pipelines, test infrastructure, and modern development practices.
  • Mentor junior engineers and help drive engineering best practices within the team.

Education

  • Bachelor’s degree in Computer Science or a related field (Master’s degree preferred).

Sample NetApp interview questions

  • 1

    How do you figure out what’s causing a server to use too much CPU?

    technicalmedium
  • 2

    Find the majority element in an array. Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊n / 2⌋ times. You may assume that the majority element always exists in the array. Input: nums = [3, 2, 3] Output: 3 Explanation: The number 3 appears 2 times, which is strictly greater than n/2 (1.5).

    codingmedium
  • 3

    Maximum Depth of an N-ary Tree Find the maximum depth of an N-ary tree. Input: root = [1,null,2,null,3,null,4] Output: 4 Explanation: The tree is essentially a straight line, requiring a traversal that reaches a maximum depth of 4 layers.

    codingmedium
  • 4

    Lowest Common Ancestor on an N-ary Tree Find the lowest common ancestor on an N-ary tree. Input: root = [1,null,2,3,4], p = 2, q = 3 Output: 1 Explanation: Both nodes 2 and 3 are direct children of the root node 1, making 1 the lowest common ancestor.

    codingmedium
  • 5

    Maximum Subarray Sum Find the maximum subarray sum in an integer array. Input: nums = [-3,-4,-1,-2] Output: -1 Explanation: Kadane's algorithm correctly identifies that the single isolated element -1 provides the highest possible sum.

    codingmedium

Get started to unlock a personalized interview prep pack for this role.

Ready to apply?
You'll be redirected to NetApp's application page.

Similar roles

See how RiseMe works

Match, tailor, and prep so you send fewer applications and land more interviews.