Principal Software Engineer II - Metadata
Principal Software Engineer · Principal · Full Time
Opens Snowflake's application page
Role
What you'll do.
Snowflake is seeking a Principal Software Engineer II to lead the development of next-generation metadata systems that power petabyte-scale data operations. The role focuses on designing fault-tolerant distributed systems for metadata management, transaction frameworks, and foundational capabilities like cross-region replication and data sharing. Requires 15+ years of experience in distributed systems, deep database internals knowledge, and expertise in Java or similar object-oriented languages.
Responsibilities
- System Architecture: Design, develop and support fault-tolerant scalable distributed systems for Metadata management
- Product Strategy: Create and own architecture and design, influence product roadmap, and identify new projects for customer technology advancement
- Problem Solving: Solve real business needs at large scale by applying software engineering and analytical problem solving skills
- Performance Optimization: Analyze fault-tolerance and high availability issues, performance and scale challenges, and implement solutions
- Team Leadership: Mentor and grow junior engineers while working effectively across engineering teams in multiple locations
- System Trade-offs: Understand trade-offs between consistency, performance and costs to build solutions meeting demands of rapidly growing services
- Operational Excellence: Ensure operational readiness of services and meet customer commitments regarding durability, availability and performance
Qualifications
What we look for.
Technical
Distributed Systems
15+ years of industry experience designing, building and supporting large scale distributed services
Database Internals
Deep and broad expertise in database systems internals including metadata management, clustering, compaction, catalogs, storage and replication
Computer Science Fundamentals
Strong fundamentals including data structures, algorithms, and distributed systems
Systems Infrastructure
Excellent understanding of multi-threading, memory management, networking and storage, performance, reliability and scalability
Programming Languages
Fluency in Java or other similar procedural object-oriented language
Cloud Scale Solutions
Track record of identifying and implementing creative solutions to complex problems at cloud scale
Education
Bachelor's Degree
BS in Computer Science required
Advanced Degree
Advanced degree preferred for deeper technical expertise
Experience
Senior Engineering Experience
15+ years of industry experience in distributed systems
Cross-functional Collaboration
Ability to work effectively across engineering teams in multiple locations
Technical Leadership
Experience mentoring and growing junior engineers
Skills
Required
Java Programming
Fluency in Java or similar object-oriented programming languages
Distributed Systems
15+ years experience with large-scale distributed services design and implementation
Database Systems
Deep expertise in database internals, metadata management, clustering, compaction, catalogs
Systems Programming
Multi-threading, memory management, networking, storage, performance optimization
Computer Science Fundamentals
Strong foundation in data structures, algorithms, and distributed systems
Preferred
Apache Iceberg
Nice to haveExperience with open table format for huge analytic datasets
Cloud Platforms
Nice to haveExperience with cloud-native distributed system development and deployment
Advanced Degree
Nice to haveAdvanced degree in Computer Science or related field
Leadership Experience
Nice to haveTrack record of technical leadership and mentoring junior engineers
Tech stack
Languages
Frameworks
Databases
Tools
Other
Compensation
Pay and benefits.
Base·USD 304,000 – 437,000
Benefits
Professional Growth
Opportunity to build industry-leading Cloud Data and AI Platform with world-class team
Technical Challenges
Work on challenging problems related to security, parallel and distributed systems, programming, resource management
Customer Interaction
Work closely with customers and partners to understand use cases and drive strategic innovation
Career Development
Join world-class team of industry veterans and rising stars for accelerated career growth
Process
Interview steps.
- 01
Initial Screening
Phone or video screen to discuss background and interest in the role
- 02
Technical Assessment
Deep dive into distributed systems design and database internals knowledge
- 03
System Design Interview
Architecture discussion focusing on metadata systems and scalability challenges
- 04
Leadership Interview
Discussion of technical leadership experience and mentoring approach
- 05
Team Fit Interview
Cultural fit assessment and collaboration across multiple engineering teams
- 06
Final Interview
Senior leadership interview to discuss strategic impact and long-term vision
Full posting
Original listing.
Snowflake is about empowering enterprises to achieve their full potential — and people too. With a culture that’s all in on impact, innovation, and collaboration, Snowflake is the sweet spot for building big, moving fast, and taking technology — and careers — to the next level.
We are the Snowflake Metadata team. We own Snowflake’s metadata systems that make it easy for customers to query, modify and manage their petabyte-scale data. We develop distributed systems that store and maintain metadata, transaction frameworks that power Snowflake’s query and DML capabilities, asynchronous systems that provide time travel and lifecycle management capabilities and entity metadata supporting DDL capabilities. We also build foundational capabilities that deliver global features like cross-region replication (Snowgrid), data sharing, and data marketplace.
Our mission is to build the next generation Metadata Platform that will significantly unlock new capabilities for Snowflake across Iceberg, unstructured data and extending Snowflake’s enterprise capabilities. Your work will drive industry leading innovation on Iceberg, Analytics, Data Engineering and AI.
AS A PRINCIPAL SOFTWARE ENGINEER AT SNOWFLAKE YOU WILL:
Solve real business needs at large scale by applying your software engineering and analytical problem solving skills.
Design, develop and support fault-tolerant scalable distributed systems for Metadata.
Create and own architecture and design, influence our product roadmap, and identify new projects that will ensure Snowflake creates the best technology for our customers.
Analyze fault-tolerance and high availability issues, performance and scale challenges, and solve them.
Mentor and grow junior engineers.
Understand trade-offs between consistency, performance and costs to build solutions which can meet the demands of rapidly growing services.
Ensure operational readiness of the services and meet the commitments to our customers regarding durability, availability and performance.
OUR IDEAL PRINCIPAL SOFTWARE ENGINEER WILL HAVE:
15+ years of industry experience designing, building and supporting large scale distributed services.
Deep and broad expertise in a variety of database systems internals including metadata management, clustering, compaction, catalogs, storage and replication.
Strong computer science fundamentals including data structures, algorithms, and distributed systems.
Excellent understanding of systems infrastructure product development and concepts including multi-threading, memory management, networking and storage, performance, reliability and scalability.
Fluency in Java or other similar procedural object-oriented language is preferred.
Track record of identifying and implementing creative solutions to complex problems at the cloud scale.
Ability to work effectively across engineering teams in multiple locations
BS in Computer Science; Advanced degree preferred.
WHY JOIN THE ENGINEERING TEAM AT SNOWFLAKE?
Build an industry-leading Cloud Data and AI Platform.
Solve challenging technical problems related to security, parallel and distributed systems, programming, resource management, large-scale system maintenance, and more!
Work closely with our customers & partners, understand their use cases & needs, think strategically to seek the right problem to solve at the right time, and innovate with rigor.
Join a world-class team of both industry veterans and rising stars.
Every Snowflake employee is expected to follow the company’s confidentiality and security standards for handling sensitive data. Snowflake employees must abide by the company’s data security plan as an essential part of their duties. It is every employee's duty to keep customer information secure and confidential.
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.
Principal Software Engineer
Principal
Software Engineer- Postgres
Mid
Software Engineer - SnowCommand
Mid
Senior Fullstack Engineer - Marketplace Monetization
Senior
Account Engineer
Mid