Senior Software Engineer- Database Internals - #604048
Date: 11/25/2021 21:00 PM
City: Bellevue, Washington
Contract type: Full Time
Work schedule: Full Day
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.
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.
We're hiring talented Senior Software Engineers to help build that new database technology. Our team builds the core query optimization, distributed query and data processing engine, and massively scalable metadata storage engine, which are at the heart of the Snowflake Data Cloud. Our innovations in these areas enable our customers to use Snowflake for any database workloads with predictable performance and high efficiency. Our ambitions are huge and this role is a unique opportunity to help us achieve them, by making a significant impact on our elastic, large scale, high-performance computing environment.
Snowflake is growing fast and we're scaling our team to help enable and accelerate our growth. We're passionate about our people, our customers, our values and our culture! We're also looking for people with a growth mindset and the pragmatic insight to solve for today while building for the future. And as a Snowflake employee, you will be accountable for supporting and enabling diversity and belonging.
AS A SENIOR SOFTWARE ENGINEER AT SNOWFLAKE YOU WILL:
- Identify and implement novel query optimization, transaction management, or distributed data processing algorithms which allow Snowflake to deliver industry-leading cloud database systems
- Build the next-generation transaction system, storage engine and multi-tenant database system
- Analyze and understand performance and scalability bottlenecks in the system and solve them
- Pinpoint problems, instrument relevant components as needed, and ultimately implement solutions
- Design, develop, and support a highly-parallel and fault-tolerant database system comprising many technologies
- Deal with issues from logical representation of the execution plan to efficient resource management, all the way down to highly specialized vectorized execution
- Evaluate and determine priorities with a critical understanding of where performance matters most
- Design and implement critical high-performance systems to handle the ever growing request rate of our database
- Own the end to end delivery of your projects, from identifying a solution, to design, implementation, testing and safe production rollout
- Evangelize best practices in database usage and end-to-end architecture
OUR IDEAL SENIOR SOFTWARE ENGINEER WILL HAVE:
- 5+ years hands-on software engineering experience
- Significant background in database internals or building core components (query language, query compilation, query execution, storage engines, transaction processing) for large-scale data processing systems (e.g. Hadoop, Spark, Presto, etc.)
- Strong CS fundamentals, including proficiency with data structures, algorithms, and distributed systems (Fluency in C++, C, or Java preferred)
- Expertise in systems fundamentals including multi-threading, concurrency, IO subsystems and scheduling
- Strong database fundamentals including SQL, performance, and schema design
- Strong communication, and collaboration skills
- 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.
Advanced Analytics systems (e.g. Time-Series, Complex Event Processing, Forecasting, etc.)
- Intense curiosity, willingness to question, and passion for solving hard technical problems and making systems better
- Experience designing, building, and operating large-scale distributed systems or web services
- Track record of identifying and implementing creative solutions and delivering highly complex projects in the distributed systems space
- BS in Computer Science; Masters or PhD Preferred
WHY JOIN THE DATABASE ENGINEERING TEAM A SNOWFLAKE?
Building a new enterprise cloud platform is complex, and our engineering team surmounts the obstacles. As a member of our team, you will:
- Build an industry-leading data management system that customers love
- Solve challenging technical problems related to security, parallel and distributed systems, programming, resource management, large-scale system maintenance, and more!
- Learn about and contribute to:
- Super-robust and secure enterprise SaaS platform that services thousands of customers and millions of complex queries daily
- Highly-scalable and reliable data processing platform that runs on hundreds and thousands of machines
User interfaces bridging the enterprise world with the consumer experience.
- Join a world-class team of both industry veterans and rising stars
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?