Senior Software Engineer

Dremio Logo

Dremio

πŸ“Remote - Canada

Summary

Join Dremio, a unified lakehouse platform company, and contribute to the development of core features like Reflections, a key component of Dremio's query engine. You will own the design, implementation, testing, and support of next-generation features related to the Query Planner and Reflections technologies. This role involves working with open-source projects, implementing modular designs, solving complex technical problems, and mentoring other team members. You will collaborate with product management, support, and field teams to ensure customer success. The ideal candidate possesses a strong background in software development, distributed systems, and database fundamentals. Dremio values a fast-paced, collaborative environment.

Requirements

  • 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
  • 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
  • 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

Responsibilities

  • 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

Preferred Qualifications

  • Strong database fundamentals including SQL, performance, and schema design
  • Experience with AWS, Azure, and Google Cloud Platform and background in large scale data processing systems (e.g., Hadoop, Spark, etc.)
  • 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

Share this job:

Disclaimer: Please check that the job is real before you apply. Applying might take you to another website that we don't own. Please be aware that any actions taken during the application process are solely your responsibility, and we bear no responsibility for any outcomes.