JobsSoftware Engineer – Presto / Spark Development
IBM logo

Software Engineer – Presto / Spark Development

IBM

Location

United States

Type

Full-time

Posted

6/25/2026

Compensation

$131,000 - $245,000 per year

Undergraduate with 5+ Years of Experience
Approval 98.5%·Filings 2,072·New hires 501·
💎 Strong Sponsor
·FY 2025

Job description

The Software Engineer role focuses on Presto and Spark development within IBM Software. The team is dedicated to building connectors, custom UDFs/UDAFs, and optimizing performance for the watsonx.data query layer. This position emphasizes collaboration in an Agile environment to enhance query throughput and latency at a petabyte scale. The engineer will play a crucial role in transforming client challenges into innovative solutions.

Requirements

  • 6+ years of professional software engineering experience, including at least 2 years with Presto/Trino or Apache Spark internals.
  • Strong proficiency in Java or Scala and experience with large, complex open-source codebases.
  • Hands-on experience in building connectors, UDFs/UDAFs, or optimizer extensions.
  • Familiarity with resolving data skew, shuffle bottlenecks, and JVM tuning in production environments.
  • Clear written communication skills for documenting designs and filing actionable bugs.

Responsibilities

  • Design, develop, test, and deliver connectors and optimizer extensions for Presto and Spark.
  • Optimize performance by diagnosing and resolving data skew and memory pressure issues.
  • Contribute to the automated CI/CD pipeline and maintain benchmarks for query performance.
  • Support Presto/Spark deployments and participate in on-call support for engine-related issues.
  • Collaborate with various teams to document connector interfaces and engine internals.

Benefits

  • IBM offers competitive compensation, healthcare coverage, retirement programs, paid parental leave, tuition assistance, wellness programs, flexible work options, and extensive learning and certification resources.

Is this posting expired or inaccurate?