Intern Software Engineer, Query Processing, Munich
Intern Software Engineer, Query Processing, Munich
About the team
Firebolt is at the forefront of data analytics, offering cutting-edge cloud data warehouse solutions. Our innovative technology is designed to handle the most complex data challenges, providing unmatched speed and efficiency. Join us in our mission to revolutionize data analytics and help businesses unlock the full potential of their data. At Firebolt, we're building a world-class team of talented database developers who are determined to build the fastest query processing engine.
What you will do
As a member of our query processing teams you'll have the chance to make a significant impact on the development of Firebolt's query engine. The team is dedicated to improve the performance of our analytical query engine, ensuring it scales seamlessly to handle hundreds of terabytes of data. Our projects range from query optimization and advancing distributed query execution to improving single-node runtime performance.
During your internship, you will be paired with a mentor to work on a well-defined project you find exciting. The project will lead to significant and measurable improvements to our high-performance query engine. At the end of your internship, you will have tangible results which you can present to a wider audience within Firebolt.
Past Projects
To give you a better understanding what your internship project at Firebolt could look like, here are some projects that our interns worked on in the past:
- Schema Recommendation: Built a new SQL function that recommends schema configuration tailored to a given workload to unlock Firebolt’s performance without in depth knowledge about query execution. You can find the documentation here.
- JIT Compilation: Built a JIT (just-in-time) compilation pipeline inside Firebolt's query engine to speed up expression evaluation. At runtime, the query engine has the exact expression it wants to evaluate at hand, and can generate & compile specialized code for that exact expression, saving a large amount of the materialization overhead of vectorized execution.
- Query Scheduling: Improved workload management in Firebolt, by developing a user-space scheduler to manage the execution of queries in Firebolt. This project reduced the number of active threads at any given time, leading to improved system performance.
Your responsibilities
- Work closely with a mentor on a well-defined project with real customer impact.
- Take part in the complete product cycle for this project. This ranges from architectural designs to building and finally shipping the feature.
- Learn a lot about high-performance query processing and building production software while having fun in an exciting and supportive environment.
About you
- You are currently pursuing a Bachelor’s/Master’s/PhD in Computer Science, Engineering, or a related field.
- You have about three months of time to work with us, but we are happy to adjust to a schedule that fits your needs.
- You have previous experience writing modern, high-performance C++ code.
- You have experience developing for Linux.
Bonus Points
- Experience building multi-threaded, high-performance systems.
- Experience with database internals and query processing.
- Experience with distributed systems.