Senior Software Engineer - Query Planner & Reflections

Posted 3 days 13 hours ago by Dremio

Permanent
Not Specified
I.T. & Communications Jobs
London, United Kingdom
Job Description
About the role

In this role, you will work on some of Dremio's core features, including Reflections-a key feature of Dremio's query engine that combines the power of materialized views with sophisticated automatic query rewrites through deep integration in Dremio's distributed query optimizer. You will grow as a leader through mentoring, collaborating with other developers and taking ownership of complex issues to deliver high quality distributed systems at a massive scale.

What you'll be doing
  • Own design, implementation, testing, and support of next-generation features related to Dremio's Query Planner and Reflections technologies
  • Work with open source projects like Apache Calcite and Apache Iceberg
  • Use modular design patterns to deliver an architecture that's elegant, simple, extensible and maintainable
  • Solve complex technical problems and customer issues while improving our telemetry and instrumentation to proactively detect issues before they arise and make debugging more efficient
  • Design and deliver architectures that run optimally on public clouds like GCP, AWS, and Azure
  • Mentor other team members for high quality and design
  • Collaborate with Product Management to innovate and deliver on customer requirements and with Support and field teams to ensure customer success
What we're looking for
  • B.S./M.S/Equivalent in Computer Science or a related technical field or equivalent experience
  • 5+ years of experience developing production-level software
  • Fluency in Java/C++
  • Strong foundation in data structures, algorithms, multi-threaded and asynchronous programming models, and their use in developing distributed and scalable systems
  • Strong database fundamentals including SQL, performance, and schema design is a big plus
  • Experience in developing complex and scalable distributed systems and delivering, deploying, and managing microservices successfully
  • Passion for learning, quality, zero downtime upgrades, availability, resiliency, uptime of the platform, and using latest technologies
  • Ability to solve ambiguous, unexplored, and cross-team problems effectively
  • Understanding of distributed file systems such as S3, ADLS, or HDFS
  • Experience with AWS, Azure, and Google Cloud Platform and background in large scale data processing systems (e.g., Hadoop, Spark, etc.) is a plus
  • Ability to scope and plan solutions for big problems and mentors others on the same
  • Interested and motivated to be part of a fast-moving startup with a fun and accomplished team
Bonus points if you have
  • Experience with materialized views and incremental view maintenance.
  • Experience with distributed query engines.
  • Hands on experience in query processing or optimization, distributed systems, concurrency control, data replication, code generation, networking, storage systems, heap management, Apache Arrow, SQL Operators, caching techniques, and disk spilling
  • Hands on experience with multi-threaded and asynchronous programming models