Enable job alerts via email!

Principal Software Engineer - Apache Spark

Cloudera

Toronto

Hybrid

CAD 120,000 - 160,000

Full time

14 days ago

Job summary

A technology company is seeking a Principal Engineer with significant experience in distributed systems to architect and implement scalable solutions for data processing. The ideal candidate will lead projects utilizing Apache Spark and related technologies, ensuring performance and reliability in high-demand environments. A strong educational background and 10+ years of experience are required, along with programming expertise in Java, Scala, or Python.

Benefits

Generous PTO Policy
Flexible WFH Policy
Mental & Physical Wellness programs
Phone and Internet Reimbursement
Access to Career Development
Comprehensive Benefits

Qualifications

  • 10+ years of experience in large-scale distributed systems.
  • Strong understanding of programming languages such as Java, Scala, Python.
  • Excellent communication skills and attention to detail.

Responsibilities

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

Skills

Distributed systems expertise
Java
Scala
Python
Clean coding habits
Independent problem-solving

Education

Bachelor’s degree in Computer Science or equivalent
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.

Responsibilities

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

Qualifications

We are excited about you if you have :

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.

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 immigrationsponsorship

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

LI-SZ1

LI-Remote

Get your free, confidential resume review.
or drag and drop a PDF, DOC, DOCX, ODT, or PAGES file up to 5MB.