Java Engineer with Apache Flink
- Toronto, ON, Canada
Contract
Applications open in a new tab.
Job details
- Job type
- Contract
- Apply by
- Posting language
- English
- Posted
Original job description
Senior Software Engineer – Java / Apache Flink (Hybrid)
Location: Toronto, ON (Hybrid – 3 days in-office / 2 days remote)
Position Overview
We are seeking a talented Senior Java Engineer with deep expertise in Apache Flink to join our growing Core Data Platform team in Toronto.
In this role, you will design, build, and optimize high-throughput, low-latency distributed streaming pipelines. You will play a critical part in evolving our real-time data architecture, transitioning legacy batch workflows into highly scalable, event-driven streaming solutions. This is a hybrid role requiring three days a week in our downtown Toronto office, offering a perfect balance of collaborative in-person whiteboarding and remote flexibility.
Core Responsibilities
- Pipeline Engineering: Design, develop, and maintain production-grade, stateful stream processing applications using the Java DataStream and Table/SQL APIs in Apache Flink.
- Architecture Evolution: Architect real-time event-driven systems utilizing Apache Kafka or AWS Kinesis integrated seamlessly with Flink.
- Performance Tuning: Optimize Flink cluster configurations, manage memory tuning (Managed vs. Unmanaged memory), write custom serializers, and manage RocksDB State Backend performance.
- Fault Tolerance & Reliability: Implement and manage robust state management strategies, including checkpointing, savepoints, and schema evolution rules to ensure exactly-once processing guarantees.
- Cross-functional Collaboration: Partner with Data Science, DevOps, and Product teams to translate complex business analytics into highly performant real-time metrics.
Required Skills & Qualifications
- Experience: 5+ years of professional software engineering experience in backend development, with a minimum of 2+ years of hands-on experience building production pipelines with Apache Flink.
- Java Expertise: Mastery of core Java (Java 11/17+), including concurrency packages, multithreading, garbage collection tuning, and memory management.
- Distributed Ecosystems: Strong experience with event streaming backbones (specifically Apache Kafka, schema registries, and consumer/producer APIs).
- Data Fundamentals: Deep understanding of stream processing concepts such as event-time processing, watermarking, late data handling, and tumbling/sliding windows.
- CI/CD & Cloud: Familiarity deploying Flink applications into containerized cloud environments (Kubernetes, AWS, or Managed Flink providers like Ververica/Confluent Cloud).
- Location Constraint: Must be currently living in or willing to relocate to the Greater Toronto Area (GTA) and able to commute to our downtown office 3 days a week.
More about this job
Responsibilities
Design, build, and optimize stateful, high-throughput streaming pipelines with Apache Flink, integrating event-streaming systems such as Kafka or AWS Kinesis. Tune Flink performance and reliability through cluster and memory configuration, state management, checkpointing, and collaboration with cross-functional teams to deliver real-time metrics.
Requirements
Requires at least five years of backend software engineering experience, including at least two years building production Apache Flink pipelines. Candidates should have strong Java expertise, experience with Kafka and distributed streaming, knowledge of stream-processing fundamentals, and familiarity with deploying Flink in containerized cloud environments; they must live in or be willing to relocate to the Greater Toronto Area and commute to the office three days weekly.
Skills
- Java
- Apache Flink
- Apache Kafka
- AWS Kinesis
- Stream Processing
- Distributed Systems
- Event-Driven Architecture
- Kubernetes
- AWS
- Concurrency
- Multithreading
- Memory Management
- Checkpointing
- Schema Evolution
- CI/CD
- RocksDB
Visa sponsorship
Not detected in the job text
Categories
- Software
- Technology
- Data & Analytics
- Engineering
Keywords
- Java
- Apache Flink
- Java DataStream API
- Flink Table API
- Flink SQL API
- Apache Kafka
- AWS Kinesis
- Schema Registries
- Event Streaming
- Stream Processing
- Event-Time Processing
- Watermarking
- Late Data Handling
- Tumbling Windows
- Sliding Windows
- Distributed Systems
- Event-Driven Architecture
- Stateful Applications
- Checkpointing
- Savepoints
- Exactly-Once Processing
- Schema Evolution
- RocksDB State Backend
- Memory Tuning
- Custom Serializers
- Kubernetes
- AWS
- CI/CD
- Real-Time Metrics
- Backend Development