Logo
Snowflake Computing

Senior Software Engineer- Database Internals

Snowflake Computing, Clyde Hill, Washington, United States,


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. 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 dist