Staff Software Engineer, Kernel Storage

GoogleApplyPublished 11 hours agoFirst seen 11 hours ago
Apply

Google Cloud's software engineers develop the next-generation technologies that change how billions of users connect, explore, and interact with information and one another. We're looking for engineers who bring fresh ideas from all areas, including information retrieval, distributed computing, large-scale system design, networking and data storage, security, artificial intelligence, natural language processing, UI design and mobile; the list goes on and is growing every day. As a software engineer, you will work on a specific project critical to Google Cloud's needs with opportunities to switch teams and projects as you and our fast-paced business grow and evolve. You will anticipate our customer needs and be empowered to act like an owner, take action and innovate. We need our engineers to be versatile, display leadership qualities and be enthusiastic to take on new problems across the full-stack as we continue to push technology forward.

Platforms Storage is responsible for building storage solutions for all of Google's services. The storage software team in particular develops all the drivers, firmware, tools etc. for flash, spindles and the next-generation storage technologies. We design linux drivers and modify the kernel storage stack and user space interfaces to maximize performance for Search, the Colossus/D stack and Cloud. With Cloud, we are exploring innovations in the Solid State Drive (SSD) interfaces, driver and firmware for Virtualized environments to leapfrog our competition.

In this role, you will focus on storage solutions that are disruptive and impactful across Google's services (like Cloud, Search etc.) and will have a knowledge of lower-level storage systems, software and architecture.

Google Cloud accelerates every organization’s ability to digitally transform its business and industry. We deliver enterprise-grade solutions that leverage Google’s cutting-edge technology, and tools that help developers build more sustainably. Customers in more than 200 countries and territories turn to Google Cloud as their trusted partner to enable growth and solve their most critical business problems.

The US base salary range for this full-time position is $197,000-$291,000 + bonus + equity + benefits. Our salary ranges are determined by role, level, and location. Within the range, individual pay is determined by work location and additional factors, including job-related skills, experience, and relevant education or training. Your recruiter can share more about the specific salary range for your preferred location during the hiring process.

Please note that the compensation details listed in US role postings reflect the base salary only, and do not include bonus, equity, or benefits. Learn more about benefits at Google.

Responsibilities

  • Develop innovative approaches to deploy next-generation Flash devices, focusing on disaggregated storage and Non-Volatile Memory Express over Fabrics (NVMe-over-Fabrics).
  • Build and maintain platform storage analytics infrastructure to monitor, troubleshoot, and derive real-time insights from storage devices across the global fleet. Leverage fleet-wide data at scale to inform and improve storage life-cycle management and hardware design decisions
  • Utilize the Linux kernel storage stack, drivers, firmware, and optimized user-space interfaces to maximize storage performance, security, and capacity.
  • Own end-to-end storage system performance optimization to ensure peak efficiency for Google's services.
  • Implement software tools and utilities to manage and optimize the end-to-end life-cycle of all storage hardware.

Minimum qualifications:

  • Bachelor's degree or equivalent practical experience.
  • 8 years of experience programming in C++.

  • 5 years of experience testing and launching software products.
  • 5 years of experience building and developing large-scale infrastructure, distributed systems or networks, or experience with compute technologies, storage, or hardware architecture.
  • 3 years of experience with software design and architecture.
  • Experience in kernel and kernel drivers.

Preferred qualifications:

  • Master’s degree or PhD in Engineering, Computer Science, or a related technical field.
  • 8 years of experience with data structures and algorithms.
  • 3 years of experience in a technical leadership role leading project teams and setting technical direction.
  • 3 years of experience working in a matrixed organization involving cross-functional, or cross-business projects.
  • Experience with operating systems.