Senior Software Engineer – FoundationDB
Snowflake Inc.
Build the future of data. Join the Snowflake team.
There is only one Data Cloud. Snowflakes 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 didnt 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.
FoundationDB (FDB) is an open source, highly scalable database capable of ACID transactions at high frequencies and low latencies. FDB has been a core component in Snowflakes unique shared-metadata architecture since 2014, making possible Snowflakes vision to build the greatest data warehouse for the cloud. FDB performs millions of transactions per second across thousands of processes. The FDB team builds features on open-source FDB that improve the performance, scale, reliability and operability of the product.
WHAT ARE WE LOOKING FOR?
We are looking for an outstanding Senior Software Engineer with a passion for large scale databases and distributed systems to help us take FoundationDB to the next level. FoundationDB powers all of Snowflakes products and services and is rapidly evolving to meet Snowflakes future needs. We are growing at a fast rate and we need to scale FoundationDB by at least one order of magnitude over the next few years. Additionally, new workloads are emerging that need FoundationDBs reliability, high availability and strong consistency semantics. These workloads will require innovation to re-architect the core components of our system.
AS A SENIOR SOFTWARE ENGINEER ON THIS TEAM, YOU WILL:
Identify strategically important problems, inefficiencies or opportunities for impactful improvements
Own the end to end delivery of your projects, from identifying a solution, to design, implementation, test and safe production rollout
Design and implement critical high performance systems to handle the ever growing request rate of our database
Build the next generation transaction system, caching, storage engine and multi tenant capabilities
Evangelize best practices in database usage and end-to-end architecture.
Analyze and understand performance and scalability bottlenecks in the system and solve them.
Pinpoint problems, instrument relevant components as needed, and ultimately implement solutions.
AN IDEAL CANDIDATE WILL HAVE:
8 years hands-on software engineering experience.
Systems programming skills including multi-threading, concurrency, etc. Fluency in C, C, or Java is preferred.
Experience designing, building, and operating large-scale distributed systems or web services
Experience with scalable Key-Value stores such as FoundationDB, RocksDB/LevelDB, DynamoDB, Redis, etc. a plus.
Strong CS fundamentals including data structures, algorithms, and distributed systems.
Track record of delivering highly complex projects in the distributed systems space
Intense curiosity, willingness to question and passion for making systems better
Strong technical problem solving, communication, and collaboration skills
Excitement by the challenge of hard technical problems
BS in Computer Science; Masters or PhD Preferred.
About Snowflake:
Snowflake SIGMOD 2016 paper
About FoundationDB:
FDB SIGMOD 21 Paper
FoundationDB Summit 2018 and FoundationDB Summit 2019
How FDB powers Snowflake Metadata Forward!
Snowflake is growing fast, and were 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.
Every Snowflake employee is expected to follow the company