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

Software Engineer

Morrisville, NCOnsiteFull TimePosted 26 days 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

  • Python
  • Golang
  • Linux
  • Unix
  • REST APIs
  • JSON
  • YAML
  • DevOps
  • Software Development Lifecycle
  • Incident Management

Nice to have

  • Microsoft Azure
  • Docker
  • Kubernetes
  • Managed cloud services
  • Distributed systems
  • Storage technologies

Role summary

NetApp is seeking a Software Engineer to develop, test, deploy, and maintain automation and tooling for managed cloud services. This role focuses on improving reliability, scalability, and operational efficiency by automating infrastructure, reducing manual operations, and troubleshooting issues. The engineer will contribute across the software development lifecycle, adhering to established designs and coding standards, and delivering enhancements, fixes, and operational improvements in cloud environments. Responsibilities include working with command-line tools, APIs, Golang, and Kubernetes, performing various types of testing, investigating issues using logs and metrics, and contributing to infrastructure automation for storage, compute, and networking.

Job Summary

At NetApp, your ideas power innovation. We lead in intelligent data infrastructure, delivering unified storage, integrated data services, and solutions that help organizations unlock the full potential of their data, from AI to multicloud. Join teams that innovate to elevate, drive results, and excel together.

As a Software Engineer, you will develop, test, deploy, and maintain automation and tooling that improve the reliability, scalability, and operational efficiency of managed cloud services. You will work with experienced engineers to automate infrastructure deployment, reduce manual production operations, troubleshoot service issues, and improve the safety and repeatability of operational workflows.

You will contribute across the software development lifecycle, using established designs, coding standards, and review processes to deliver well-defined enhancements, defect fixes, tests, and operational improvements in cloud-based environments.

Responsibilities

  • Assist with command-line tools, APIs, PowerShell modules, Golang software and Kubernetes-based operational jobs.
  • Develop and maintain software, scripts, and automation used to deploy and operate cloud infrastructure.
  • Perform functional, integration, regression, and reliability testing in non-production environments; document results and resolve defects before release.
  • Investigate software, infrastructure, networking, and configuration issues using logs, metrics, traces, and other diagnostics.
  • Implement well-defined enhancements and bug fixes using established engineering designs, coding standards, and review processes.
  • Contribute to infrastructure automation for storage, compute, networking, and supporting cloud resources.
  • Develop and improve safe, repeatable operational tooling that reduces manual production procedures.
  • Participate in incident response, production troubleshooting, and on-call processes as required by the team operating model.
  • Assist with root-cause investigations and implement corrective actions for recurring operational issues.
  • Monitor service health and identify opportunities to improve availability, performance, reliability, and supportability.
  • Create and maintain engineering documentation, test evidence, runbooks, and configuration guidance.
  • Collaborate with software engineering, production engineering, networking, security, hardware, and program-management partners.
  • Participate in code reviews, sprint planning, technical discussions, and knowledge-transfer sessions.
  • Apply secure-development and least-privilege principles when creating or modifying production automation.

Job Requirements

  • 4+ years of relevant experience in software development, cloud engineering, DevOps, infrastructure automation, or site reliability engineering.
  • Working knowledge of Python and Golang.
  • Experience developing or maintaining automation for Linux or other Unix-like operating systems.
  • Familiarity with source control, pull requests, code reviews, automated testing, and continuous integration and deployment practices.
  • Working knowledge of REST APIs and structured data formats such as JSON or YAML.
  • Familiarity with public-cloud services, preferably Microsoft Azure, and with containers or orchestration platforms such as Docker or Kubernetes.
  • Ability to troubleshoot software, infrastructure, networking, and configuration issues using available diagnostic information.
  • Understanding of software development lifecycle, DevOps, incident-management, and reliability practices.
  • Ability to independently complete moderately complex technical assignments with general direction and seek guidance when requirements or risks are unclear.
  • Strong analytical, problem-solving, documentation, and communication skills, with the ability to collaborate across distributed engineering teams.
  • Experience with managed cloud services, distributed systems, storage technologies, infrastructure deployment, or production automation is preferred.

Education

  • Bachelor's degree in Computer Science, Software Engineering, Computer Engineering, Information Technology, or a related technical discipline. Equivalent practical experience will also be considered.

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.