Software Engineer - Database Search

See more jobs from Snowflake Inc.

about 1 year old

This job is no longer active

Build the future of data. Join the Snowflake team.

We are seeking a talented Software Engineer to join the Database Search team in Berlin. You would be involved in identifying workload optimizations, and accelerating queries using novel methods of indexing and efficient use of metadata. The Database Search team is also responsible for smart index selection, query pruning, tokenized search, index maintenance services, & other optimization techniques. 

This role offers an opportunity to make a significant impact on our core database engine that is the foundation of the Snowflake Data Cloud.

AS A SOFTWARE ENGINEER AT SNOWFLAKE YOU WILL:

  • Identify and implement novel ideas on indexing methods, index maintenance, index selection, and query optimization techniques which allow Snowflake to provide industry-leading data warehousing capabilities.
  • 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 and where performance is irrelevant.

OUR IDEAL SOFTWARE ENGINEER WILL HAVE:

  • 2+ years of hands-on software engineering experience.
  • Background in database internals or building core engine components for large scale data processing systems or information retrieval systems / search engines (e.g. Lucene, Solr).
  • Strong database fundamentals including SQL, performance, and multi-threading.
  • Strong CS fundamentals including data structures, algorithms, and distributed systems.
  • Systems programming skills including multi-threading, concurrency, etc. Fluency in C++ and/or Java.
  • BSc in Computer Science or a related field; Master's or PhD preferred.
  • Fluent in English.