Enable job alerts via email!

Principal Software Engineer - Apache Spark

Cloudera

Ottawa

Hybrid

CAD 130,000 - 170,000

Full time

30+ days ago

Job summary

A leading data engineering firm in Ottawa is seeking an experienced Principal Engineer to design and implement scalable solutions for distributed data processing using technologies like Java, Scala, and Apache Spark. Candidates should have a strong background in distributed systems, with at least 10 years of experience in software engineering. The role offers a flexible work environment and a comprehensive benefits package.

Benefits

Generous PTO Policy
Flexible WFH Policy
Mental & Physical Wellness programs
Career Development access
Comprehensive Benefits

Qualifications

  • 10+ years of experience in software engineering.
  • Experience with systems design and development for large-scale distributed environments.
  • Strong understanding of Java, Scala, or Python.

Responsibilities

  • Architect, design, and implement scalable solutions for distributed data processing.
  • Take ownership of critical distributed systems components.
  • Develop monitoring and performance analysis tools.

Skills

Distributed systems expertise
Java
Scala
Python
Problem-solving
Communication

Education

Bachelor’s degree in Computer Science
Master’s degree
PhD

Tools

Apache Spark
Iceberg
Parquet
AWS
Azure
GCP
Job description
Overview

At Cloudera, we empower people to transform complex data into clear and actionable insights. With as much data under management as the hyperscalers, we're the preferred data partner for the top companies in almost every industry. Powered by the relentless innovation of the open source community, Cloudera advances digital transformation for the world’s largest enterprises.

Cloudera is seeking an experienced Principal Engineer with strong distributed systems expertise to work on the Cloudera distribution of Apache Spark. We are looking for senior engineers with experience in large-scale, distributed systems and data processing to help build our enterprise-grade system, designed for customers running Spark on thousands of nodes and processing petabytes of data.

We are looking for a passionate individual that is ready to be a team lead for a team that is already supporting production systems at many of the biggest companies – and is looking to expand and take on even more projects to drive the next gen Data Engineering experience. You will be working with a distributed team, spread across the United States and Hungary, including multiple committers on Apache Spark.

As a Principal Software Engineer, you will :

  • Architect, design, and implement resilient and scalable solutions for distributed data processing at massive scale, with a focus on fault tolerance, performance optimization, query planning, and resource management
  • Take ownership of critical distributed systems components, solving complex challenges related to network communication, concurrency, data consistency, and system reliability across clusters of thousands of nodes
  • Develop advanced monitoring, debugging, and performance analysis tools for large-scale distributed systems
  • Act as a tech lead for Cloudera’s Spark team
  • Work with and contribute to the latest open source technologies, including Apache Spark, Iceberg, and Parquet
  • Develop new features in Scala / Java / Python on modern platforms
  • Gain a solid understanding and deep technical knowledge of components across the Cloudera Data Engineering Experience stack, but focusing on Iceberg and Spark
  • Debug system level deployment issues, root cause analysis, perform system test analysis and resolve failures
  • Work on improving internal infrastructure
  • Collaborate with other team members and stakeholders

You may also have :

  • Experience with large-scale, distributed systems design and development with an understanding of scaling, performance, and scheduling
  • In-depth understanding of distributed query processing and planning
  • Experience with using / developing Apache Spark or other related technologies.
  • In-depth understanding of distributed systems concepts like consensus algorithms, distributed transactions, and fault tolerance
  • Experience working with query automated query optimization
  • Solid experience with at least one cloud service (AWS, Azure, GCP, OpenShift)
  • Contributors to open-source projects

This role is not eligible for immigration sponsorship

Qualifications
  • Bachelor’s degree in Computer Science or equivalent, and 10+ years of experience; OR Master’s degree and 6+ years of experience; OR PhD and 4+ years of experience
  • Experience with systems design and development specifically for large-scale distributed environments
  • Experience leading and delivering complex product enhancements
  • We use Java / Scala / Python / GoLang in projects, you should have a strong understanding of at least one of the following languages : Java, Scala, GoLang, Rust, C++, Python. And interested to learn the languages we’re using.
  • Passionate about programming, clean coding habits, attention to detail, and focus on quality
  • Strong oral and written communication skills.
  • Strong ability to research and solve problems independently without constant supervision
  • (Most importantly) Open-minded, desire to learn new things and build great products.
What you can expect from us :
  • Generous PTO Policy
  • Support work life balance with
  • Flexible WFH Policy
  • Mental & Physical Wellness programs
  • Phone and Internet Reimbursement program
  • Access to Continued Career Development
  • Comprehensive Benefits and Competitive Packages
  • Employee Resource Groups
  • EEO / VEVRAA
Get your free, confidential resume review.
or drag and drop a PDF, DOC, DOCX, ODT, or PAGES file up to 5MB.