Java Backend Engineer
- Canada
Contract
Applications open in a new tab.
Job details
- Job type
- Contract
- Posting language
- English
- Posted
Original job description
Job Summary
We are looking for an experienced Java Backend Developer with strong expertise in building large-scale, distributed backend systems that process and manage high volumes of jobs. The ideal candidate will have hands-on experience designing long-running asynchronous jobs, managing large queues, implementing Dead Letter Queue (DLQ) handling, and building scalable, reliable solutions on AWS.
Key Responsibilities
- Design, develop, and maintain scalable backend services and distributed job-processing systems using Java.
- Build systems capable of handling large volumes of jobs, including long-running and resource-intensive tasks.
- Design and manage large job queues, ensuring reliable job scheduling, execution, retry, and recovery.
- Implement and maintain Dead Letter Queues (DLQs) to handle failed jobs, retries, error tracking, and message recovery.
- Develop mechanisms to copy, replicate, enqueue, and process large numbers of jobs efficiently.
- Optimize job-processing workflows for throughput, latency, scalability, and fault tolerance.
- Build asynchronous processing architectures using AWS services and messaging technologies.
- Implement monitoring, logging, alerting, and troubleshooting for job queues and backend services.
- Ensure data consistency, idempotency, and reliable processing across distributed systems.
- Collaborate with engineering and infrastructure teams to design robust backend architectures.
Required Skills
- Strong hands-on experience with Java backend development.
- Experience building large-scale, distributed backend applications.
- Strong understanding of asynchronous processing, background jobs, and long-running tasks.
- Experience managing large queues and high-volume job processing.
- Hands-on experience with Dead Letter Queues (DLQs), retry mechanisms, and failure recovery.
- Experience with AWS services for backend processing and queue management.
- Knowledge of concurrency, multithreading, fault tolerance, and distributed system design.
- Strong debugging, performance tuning, and problem-solving skills.
Preferred Skills
- Experience with AWS SQS, SNS, Lambda, ECS, or other relevant AWS services.
- Experience with message brokers such as Kafka or RabbitMQ.
- Experience implementing bulk job creation, copying, replaying, or reprocessing workflows.
- Familiarity with queue monitoring, back-pressure, rate limiting, and workload management.
- Experience with observability tools, metrics, logging, and distributed tracing.
- Knowledge of database optimization and transaction management in high-throughput systems.
More about this job
Responsibilities
Design, develop, and optimize scalable Java backend services and distributed job-processing systems that handle high volumes of long-running tasks. Manage queues, retries, and dead letter handling while ensuring reliable, observable, and fault-tolerant processing on AWS.
Requirements
Requires strong hands-on Java backend experience and a background building large-scale distributed systems with asynchronous processing and high-volume queues. Candidates should understand AWS, dead letter queues, retries, concurrency, fault tolerance, and performance tuning; experience with messaging platforms and observability is preferred.
Skills
- Java
- Backend Development
- Distributed Systems
- Asynchronous Processing
- Background Jobs
- Job Queues
- Dead Letter Queues
- AWS
- Concurrency
- Multithreading
- Fault Tolerance
- Retry Mechanisms
- Failure Recovery
- Performance Tuning
- Monitoring
- Database Optimization
Visa sponsorship
Not detected in the job text
Categories
- Software
- Technology
- Engineering
Keywords
- Java
- Backend Services
- Distributed Systems
- Job Processing
- Asynchronous Processing
- Long-Running Tasks
- Job Queues
- Dead Letter Queues
- AWS
- Amazon SQS
- Amazon SNS
- AWS Lambda
- Amazon ECS
- Kafka
- RabbitMQ
- Retry Mechanisms
- Failure Recovery
- Concurrency
- Multithreading
- Fault Tolerance
- Idempotency
- Data Consistency
- Queue Monitoring
- Back-Pressure
- Rate Limiting
- Observability
- Distributed Tracing
- Database Optimization
- Transaction Management
- Performance Tuning