OUR IDEAL SOFTWARE ENGINEER WILL HAVE:
• 5+ years hands-on software engineering experience.
• Background in database internals or building core components for data processing systems (query compilation, query execution, storage engines, transaction processing)
• Strong database fundamentals including SQL, performance and schema design.
• Strong systems fundamentals including multi-threading, IO subsystem and scheduling.
• Strong CS fundamentals including data structures, algorithms, and distributed systems.
• Systems programming skills including multi-threading, concurrency, etc. Fluency in C++, C, or Java preferred.
• Experience with scalable Key-Value stores such as FoundationDB, RocksDB/LevelDB, DynamoDB, Redis, etc. a plus.
• Track record of identifying and implementing creative solutions.
• Track record working with data from multiple sources.
• BS in Computer Science; Masters or PhD Preferred.
AS A 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.
• Design, Develop, and Support a highly-parallel and fault-tolerant database system.
• Deal with issues from logical representation of the execution plan to efficient resource management, all the way down to low latency query execution.
• Evaluate and determine priorities with a critical understanding of where performance matters most.
• Analyze and understand performance and scalability bottlenecks in the system and solve them.
• Pinpoint problems, instrument relevant components as needed, and ultimately implement solutions.