Senior Software Engineer, Compute Service

Senior Backend Engineer · Senior · Full Time

US-CA-Menlo ParkUSD 200k – 288k5d ago
Apply for this role

Opens Snowflake's application page

Role

What you'll do.

Join Snowflake's Compute Service team as a Senior Distributed Systems Engineer to design and operate mission-critical scheduling and queueing systems powering the Data Cloud across AWS, Azure, and Google Cloud. This role combines large-scale distributed systems architecture with hands-on systems programming in Java, requiring extensive experience building fault-tolerant, high-availability services that manage admission control, resource isolation, and capacity optimization for warehouse-backed workloads serving thousands of organizations globally.

Responsibilities

  • Design and Implement Scalable Distributed Systems: Architect and build large-scale distributed systems for scheduling, queueing, dispatch, and completion of warehouse-backed compute work. Design systems that handle fault tolerance, high availability, performance optimization, and horizontal scaling across multi-region cloud deployments.
  • Solve Distributed Systems Challenges at Scale: Analyze and resolve complex technical challenges in fault tolerance, high availability, performance, and scalability. Apply deep understanding of distributed systems theory to production systems handling millions of transactions and managing massive computational workloads.
  • Build Admission Control and Capacity Management Systems: Design and implement admission control layers, workload isolation mechanisms, and capacity management systems that ensure fair resource allocation and predictable performance for shared compute infrastructure serving multiple tenants and use cases.
  • Lead Cross-Functional System Architecture Initiatives: Collaborate with engineers, product managers, and technical program managers across teams to align on system requirements, architecture decisions, and implementation roadmaps. Lead architectural discussions on consistency, durability, latency, and cost trade-offs to meet evolving business demands.
  • Ensure Operational Excellence and Reliability: Drive operational readiness of compute services, implement monitoring and alerting systems, and maintain SLA commitments to customers on availability and performance. Design systems that self-optimize and provide high availability and data protection across multi-cloud environments.
  • Solve Real Business Problems at Scale: Apply software engineering and analytical problem-solving to address production challenges impacting thousands of organizations. Implement creative solutions that balance competing priorities of usability, performance, cost, and reliability while supporting rapid customer growth.

Qualifications

What we look for.

Technical

  • Distributed Systems Architecture and Design

    Proven expertise designing, building, and supporting large-scale distributed, fault-tolerant services in production. Deep understanding of control plane architecture, compute placement algorithms, queueing systems, and scheduling logic for managing heterogeneous workloads at scale.

  • Systems Programming and Concurrency

    Strong systems programming skills with proficiency in multi-threading, concurrency patterns, and synchronization primitives. Fluency in Java required; experience with C++ or Go is beneficial for understanding low-level system optimization.

  • Operating System Concepts and Performance

    Deep understanding of operating-system fundamentals including multi-threading, memory management, networking protocols, storage systems, performance analysis, and scalability optimization. Experience profiling and optimizing system-level bottlenecks.

  • Cloud Infrastructure and Multi-Cloud Operations

    Substantial hands-on experience with cloud infrastructure platforms, particularly AWS, Microsoft Azure, or Google Cloud. Understanding of cloud-native architecture patterns, containerization, infrastructure-as-code, and multi-region deployment strategies.

  • Computer Science Fundamentals

    Strong foundation in core computer science disciplines including data structures, algorithms, computational complexity analysis, distributed systems theory, and database systems. Ability to apply algorithmic thinking to solve production system challenges.

Education

  • Computer Science Degree or Equivalent

    Bachelor's degree in Computer Science, Computer Engineering, or related technical discipline. Equivalent practical experience in large-scale systems engineering can substitute for formal education. Advanced degree in Computer Science or related field is a plus.

Experience

  • Large-Scale Production Systems Experience

    Minimum 7-10 years of industry experience designing, building, and operating large-scale distributed systems in production environments. Track record of shipping systems that handle massive scale, high throughput, and complex failure scenarios.

  • Distributed Systems and Control Planes

    Proven experience building fault-tolerant distributed services including compute schedulers, resource managers, queueing systems, or similar control plane infrastructure. Experience with systems serving thousands of concurrent users or managing large compute clusters.

  • Problem Identification and Creative Problem-Solving

    Demonstrated track record of identifying complex production problems, analyzing root causes, and implementing innovative solutions. Experience working on systems where performance, reliability, and cost optimization are critical business drivers.

  • Cross-Functional Collaboration at Scale

    Experience leading technical initiatives across multiple teams, communicating architectural decisions to stakeholders, and balancing competing priorities. Proven ability to work effectively with product, infrastructure, and platform teams in fast-moving environments.

Skills

Required

  • Java

    Fluency in Java for systems programming, concurrency control, and building production services. Must demonstrate expertise in multi-threading, memory management, and performance optimization in Java.

  • Distributed Systems Design

    Deep expertise in distributed systems theory and practice, including consensus algorithms, eventual consistency, state machine replication, and fault-tolerance patterns. Understanding of CAP theorem and practical trade-off decisions.

  • Queueing and Scheduling Systems

    Experience designing or working with queueing systems, task scheduling, resource allocation algorithms, and workload management. Understanding of queue data structures, scheduling theory, and fairness algorithms.

  • Performance Analysis and Optimization

    Ability to profile, benchmark, and optimize systems for latency, throughput, and resource efficiency. Experience using profiling tools and analyzing performance bottlenecks in complex distributed systems.

  • Database and Storage Systems

    Fundamental understanding of database concepts, transaction semantics, consistency models, and distributed storage. Knowledge of replication, partitioning, and backup strategies for cloud data platforms.

Preferred

  • Go or C++

    Nice to have

    Experience with compiled systems languages like Go or C++ for high-performance distributed systems work. Valuable for understanding low-level optimization and systems-level programming patterns.

  • Kubernetes and Container Orchestration

    Nice to have

    Hands-on experience with Kubernetes, Docker, or container orchestration platforms. Understanding of how modern container schedulers solve resource management and workload placement problems.

  • Apache Spark or Big Data Frameworks

    Nice to have

    Familiarity with Apache Spark, MapReduce, or other big data processing frameworks. Understanding of how distributed computing frameworks schedule and execute tasks across clusters.

  • Terraform or Infrastructure-as-Code

    Nice to have

    Experience with Terraform, CloudFormation, or other infrastructure-as-code tools for managing cloud infrastructure deployment and scaling.

  • Observability and Monitoring Systems

    Nice to have

    Experience building or working with monitoring, logging, and distributed tracing systems (e.g., Prometheus, Jaeger, ELK stack) for operational visibility into complex distributed systems.

  • SQL and Data Warehousing

    Nice to have

    Working knowledge of SQL, data warehousing concepts, and OLAP systems. Understanding of how queries execute in distributed data warehouses to better design supporting infrastructure.

Tech stack

Languages

JavaSQLPython

Frameworks

Apache SparkKubernetesgRPC

Databases

Snowflake Data CloudDistributed State Stores

Tools

AWSMicrosoft AzureGoogle Cloud PlatformTerraformGit and Version ControlMonitoring and Observability Tools

Other

Distributed TracingLoad Balancing and Service MeshLinux System Administration

Compensation

Pay and benefits.

Base·USD 200,000 – 287,500

Equity·Stock options

Benefits

  • Equity and Stock Options

    Competitive stock option grants that align your success with company growth and provide long-term wealth-building opportunities as a publicly-traded cloud platform company.

  • Comprehensive Health Coverage

    Medical, dental, and vision insurance coverage with choice of plans, subsidized by Snowflake to provide comprehensive healthcare protection for you and your family.

  • 401(k) Retirement Plan

    Employer-matched 401(k) retirement savings plan with competitive matching contributions to help you build long-term financial security.

  • Professional Development and Learning

    Investment in your growth through training budgets, conference attendance, online learning platforms, and opportunities to work with industry-leading technical talent and solve complex distributed systems problems.

  • Flexible Work Arrangements

    Flexible work options and remote work capabilities that support work-life balance while maintaining strong collaboration with distributed teams.

  • Generous Paid Time Off

    Competitive vacation and paid time off policies, plus paid holidays and sick days to support your wellness and personal priorities.

  • Parental Leave Benefits

    Paid parental leave supporting both primary and secondary caregivers, recognizing the importance of family time during major life transitions.

  • Technical Growth Opportunities

    Opportunity to work on world-class distributed systems infrastructure, lead architectural initiatives, and contribute to a technology stack that powers thousands of organizations globally.

Process

Interview steps.

  1. 01

    Initial Recruiter Screening Call

    30-minute conversation with a technical recruiter to understand your background, relevant experience with distributed systems, systems programming expertise, and career interests. Discussion of role expectations, compensation band, and work arrangement preferences.

  2. 02

    Technical Phone Screen

    45-60 minute technical assessment with a senior engineer focused on distributed systems concepts, Java programming, system design thinking, and problem-solving approach. Expect questions on scheduling algorithms, fault-tolerance patterns, and trade-offs in distributed systems design.

  3. 03

    System Design Deep Dive

    90-minute session with 1-2 Compute Service team engineers covering architectural design of complex distributed systems. You will be asked to design scheduling systems, queueing infrastructure, or similar control plane components at scale, discussing trade-offs between consistency, availability, latency, and cost.

  4. 04

    Code Implementation Exercise

    Take-home or live coding exercise in Java demonstrating systems programming skills, multi-threading proficiency, and algorithmic problem-solving. Exercise typically focuses on implementing concurrent data structures, scheduling logic, or distributed systems primitives.

  5. 05

    Cross-Functional Collaboration Interview

    Conversation with product managers, technical program managers, or partner team engineers to assess collaboration skills, communication ability, and how you approach working across teams to solve complex problems in fast-moving environments.

  6. 06

    Compute Service Team Round

    Opportunities to meet with members of the Compute Service team leadership and engineers to discuss current technical challenges, team culture, and how your experience aligns with the platform's architectural direction and operational needs.

  7. 07

    Executive or Principal Engineer Discussion

    Optional conversation with senior technical leadership to discuss your vision for distributed systems architecture, your approach to building world-class infrastructure, and alignment with Snowflake's platform strategy.

Full posting

Original listing.

At Snowflake, we are powering the era of the agentic enterprise. To usher in this new era, we seek AI-native thinkers across every function who are energized by the opportunity to reinvent how they work. You don’t just use tools; you possess an innate curiosity, treating AI as a high-trust collaborator that is core to how you solve problems and accelerate your impact. We look for low-ego individuals who thrive in dynamic and fast-moving environments and move with an experimental mindset — who rapidly test emerging capabilities to discover simpler, more powerful ways to deliver results. At Snowflake, your role isn't just to execute a function, but to help redefine the future of how work gets done.

There is only one Data Cloud. Snowflake’s founders started from scratch and designed a data platform built for the cloud that is effective, affordable, and accessible to all data users. But it didn’t stop there. They engineered Snowflake to power the Data Cloud, where thousands of organizations unlock the value of their data with near-unlimited scale, concurrency, and performance. This is our vision: a world with endless insights to tackle the challenges and opportunities of today and reveal the possibilities of tomorrow.

Our product offering runs on multiple cloud providers, including Amazon Web Services, Microsoft Azure, and Google Cloud. Our infrastructure self-optimizes and provides high availability and data protection across cloud providers, so our users can focus on using their data, not managing it.

Our team is the Compute Service team. We build and operate the systems that schedule and run warehouse-backed work beyond a user’s interactive query: asynchronous and scheduled compute, elastic capacity for parts of live queries, and the scheduling control plane those workloads run on. We balance usability, performance, cost, and reliability for the teams and customers that depend on this compute.

We are actively hiring talented distributed systems developers. This role is an opportunity to shape the architecture and operation of core services that the rest of Snowflake runs on.

As a Senior Distributed Systems Engineer at Snowflake you will:

  • Solve real business needs at large scale by applying software engineering and analytical problem solving.

  • Design and implement scalable distributed systems for scheduling, queueing, dispatch, and completion of warehouse-backed work.

  • Analyze fault tolerance, high availability, performance, and scale challenges, and solve them.

  • Build admission control, isolation, and capacity management so shared compute stays fair and predictable.

  • Lead cross-functional initiatives, and collaborate with engineers, product managers, and technical program managers across teams.

  • Judge trade-offs among consistency, durability, latency, and cost, and build systems that meet the demands of rapidly growing services.

  • Ensure operational readiness of the services, and meet commitments to customers on availability and performance.

Our ideal distributed systems engineer will have:

  • Substantial industry experience designing, building, and supporting large-scale systems in production.

  • Experience building large-scale, distributed, fault-tolerant services and control planes, including compute placement, queueing, and monitoring.

  • A strong understanding of operating-system concepts, including multi-threading, memory management, networking, storage, performance, and scale.

  • Strong computer-science fundamentals, including data structures, algorithms, and distributed systems.

  • Systems programming skills, including multi-threading and concurrency. Fluency in Java is preferred.

  • A track record of identifying problems and implementing creative solutions.

  • Experience with cloud infrastructure on AWS, Azure, or Google Cloud.

  • A BS in Computer Science, or equivalent practical experience. An advanced degree is a plus.

Why join the engineering team at Snowflake?

  • Build an industry-leading cloud data platform.

  • Solve challenging technical problems in parallel and distributed systems, resource management, scheduling, and large-scale system operation.

  • Work closely with partner teams, understand their use cases and needs, and choose the right problem to solve at the right time.

  • Contribute to a highly scalable and reliable cloud platform that runs on a very large fleet of machines, and to the Java systems that schedule and execute work on it.

  • Join a world-class team of industry veterans and rising engineers.

Snowflake is growing fast, and we’re scaling our team to help enable and accelerate our growth. We are looking for people who share our values, challenge ordinary thinking, and push the pace of innovation while building a future for themselves and Snowflake.

How do you want to make your impact?

For jobs located in the United States, please visit the job posting on the Snowflake Careers Site for salary and benefits information: careers.snowflake.com

Redirects to Snowflake's application page.

Other roles

More at Snowflake.

View all 96 roles