Software Engineer II, Storage
Develop and operate scalable, fault-tolerant cloud storage infrastructure, contributing across the stack from bare metal to user-facing APIs. The role requires distributed infrastructure experience, software engineering expertise, and proficiency in Java or Go.
About the job
Responsibilities
- Develop and operate high-performance, scalable, and reliable cloud storage infrastructure.
- Collaborate with product and engineering teams to define and execute roadmap features.
- Write sustainable software and contribute to design documentation.
- Qualify and roll out software across the stack, from bare metal to user-facing APIs.
- Participate in architecture discussions, design processes, design reviews, code reviews, and implementation.
- Collaborate with engineers and contribute to technical initiatives such as tech talks and open-source development.
Requirements
- Hands-on experience building and operating large-scale, complex distributed cloud computing infrastructure products.
- Experience building redundant and fault-tolerant storage solutions with backups, replication, encryption, and data protection mechanisms.
- Knowledge of professional software engineering practices across the full software development life cycle.
- Experience with at least one programming language such as Java or Go.
- Exposure to infrastructure-as-code tools such as Ansible, Chef, Puppet, or Terraform.
- Knowledge of Linux systems internals and computer architecture.
- Strong communication and collaboration skills.
- Ability to pass a background check.
Nice-to-Haves
- Experience with NVMe, SSDs, or distributed storage systems.
- Understanding of block, object, or file storage.
- Familiarity with NFS, SMB, iSCSI, or NVMe-oF.
- Open-source contributions to projects such as Ceph, GlusterFS, or OpenEBS.
- Systems programming experience with C, C++, or Rust.
- Understanding of physical and software-defined networking.
- Advanced degree in Computer Science, Engineering, or a related field.
Compensation and Benefits
- Compensation range of $140,000–$160,000 plus bonus.
- Restricted Stock Units included in all offers.
- Paid time off, paid holidays, and leave programs.
- Health, dental, and vision insurance.
- Employer HSA contributions.
- Paid parental leave and disability insurance.
- Professional development and tuition reimbursement.
- Mental health and wellness support.
- Commuter benefits, cell phone stipend, and 401(k) with company match.
- Volunteer time off, global travel insurance, daily meals allowance, and location-specific benefits.
Skills
Cloud Storage, Distributed Systems, Java, Go, Terraform, Ansible, Linux Internals, Computer Architecture, Nvme, Ceph, Rust, Nfs, Iscsi, Networking
Similar jobs
Backend Engineering jobsBuild backend features and improve performance across document workflows, integrations, and greenfield projects in a Django-based platform. The role requires 3+ years of backend application experience, strong Python skills, and familiarity with testing, database optimization, and engineering best practices.
Develop Windows and .NET services powering Microsoft Teams bot applications with low-latency real-time audio and video. The role requires 3–5 years of software development experience, strong C#/.NET skills, Kubernetes operations expertise, and familiarity with media streaming and Microsoft APIs.
Build and operate backend services and APIs powering Cash Line lending experiences, including pricing, underwriting, funding, and account management. The role requires a bachelor's degree or equivalent experience, at least four years of professional software engineering experience, and proficiency with backend development.
Build and scale Ruby on Rails backend services for rewards, incentives, and loyalty features in a high-throughput platform. The role owns complex feature delivery, contributes to architecture, mentors junior engineers, and requires 3+ years of professional software engineering experience.
Build and scale Ruby on Rails backend services powering shopping, merchandising, search, and live game experiences. The role owns complex features end-to-end, contributes to architecture, guides junior engineers, and supports reliable distributed systems.