Build the future of data. Join the Snowflake team.
A massive new market opportunity is being created at the intersection of Cloud and Data, and the Snowflake Data Cloud is leading the way, all powered by the database engine we are building from the ground up.
Key to Snowflake’s Database Engine is our large scale distributed transactional Key-Value store - called FDB - which powers all of Snowflake’s products and services and is rapidly evolving to meet Snowflake’s future needs.
FDB runs on multiple cloud providers including Amazon Web Services, Microsoft Azure and Google Cloud. The elastic infrastructure FDB runs on is being built from the ground up and is envisioned to be a cloud agnostic, fully automated manageability platform that provides:
- Autoscaling and auto-balancing of clusters based on utilization, traffic and workloads
- Auto-provisioning of new clusters with zero manual intervention
- Self-healing capabilities that prevent, mitigate and resolve any production impact
- Built-in configuration management that guarantees FDB runs correctly and on the intended topologies
- Self-optimizing COGS efficiency, ensuring we run our clusters at optimal utilization
We are looking for an outstanding Principal Software Engineer with a passion for large scale databases and distributed systems to help us take the FDB platform to the next level.
AS A PRINCIPAL SOFTWARE ENGINEER ON THIS TEAM, YOU WILL:
- Lead a team responsible for the health and growth of the FDB platform service at Snowflake
- Design and implement scalable distributed system solutions for our cloud agnostic platform, with features including
- Auto-provisioning, Auto-scaling and auto-balancing clusters based on utilization and workloads
- Self-healing capabilities that prevent, mitigate and resolve any production impact
- Built-in cluster configuration management with release automation
- Analyze fault-tolerance and high availability issues, performance and scale challenges, and solve them.
- Own the end to end health and growth of the FDB platform, including identifying the right problems to solve, the solution, design, implementation, as well as testing strategy, safe production rollout and stability.
- Understand trade-offs between consistency, durability and costs to build solutions which can meet the demands of rapidly growing services.
- Build the next generation transaction system, caching, storage engine and multi tenant capabilities
- Evangelize best practices in database usage and end-to-end architecture.
- Pinpoint problems, instrument relevant components as needed, and ultimately implement solutions.
- Mentor and grow engineers.
AN IDEAL CANDIDATE WILL HAVE:
- 10+ years industry experience designing, building and supporting large scale infrastructure in production.
- Experience designing, building, and operating large-scale distributed systems supporting stateful services
- Experience in container orchestration, cluster management, or autoscaling.
- Excellent understanding of operating systems concepts including multi-threading, memory management, networking and storage, performance and scale.
- Systems programming skills including multi-threading, concurrency, etc. Fluency in Java, C++, or C is preferred.
- Solid understanding of the internals of Kubernetes, Mesos, OpenShift, or other container platforms
- Experience with scalable Key-Value stores such as FoundationDB, RocksDB/LevelDB, DynamoDB, Redis, etc. a plus.
- Track record of leading and delivering highly complex projects in the distributed systems space
- Intense curiosity, willingness to question and passion for making systems better
- Experience with one or more of the following highly desired:
- Big Data storage technologies and their applications (HDFS, Cassandra, Columnar Databases, etc.)
- Scalable Key-Value stores such as FoundationDB, RocksDB/LevelDB, DynamoDB, Redis, Cassandra, etc.
- BS in Computer Science; Masters or PhD Preferred.
About Snowflake:
About FoundationDB:
FoundationDB Summit 2018 and FoundationDB Summit 2019
How FDB powers Snowflake Metadata Forward!
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.