Applied Systems Canada is transforming the insurance industry by building a team dedicated to delivering innovative software and services. They are seeking a Senior Software Engineer to design and maintain Java-based backend services, modernize legacy applications, and enhance system reliability and scalability.
Responsibilities:
- Design, build, and maintain Java-based backend services that power Ivans carrier connectivity, supporting bi-directional message flows and partner integrations
- Modernize legacy Java applications, including upgrading codebases compiled against older JDKs and refactoring outdated patterns into modular, testable, maintainable services
- Implement and operate high-volume event- and batch-driven processing pipelines with robust state management, idempotency, and failure recovery
- Design and implement distributed message tracking and reconciliation capabilities to improve end-to-end traceability
- Define and improve observability standards, including instrumentation, monitoring, alerting, and SLO-driven reliability practices using tools like Datadog
- Contribute to consolidation of fragmented or bespoke implementations into shared, reusable service layers that improve scalability, onboarding, and long-term maintainability
- Take ownership of services in production, contributing to incident response, postmortems, and continuous reliability improvements
- Participate in architecture reviews and influence platform design decisions to ensure long-term scalability and maintainability
- Support refactoring efforts that migrate batch-based workflows toward event-driven models where appropriate, balancing performance, reliability, and delivery guarantees
Requirements:
- 7+ years of backend engineering experience with strong depth in Java, building and operating production-grade services
- Prior experience in insurance or financial services is a plus, particularly working with high-volume transactional systems or carrier integrations
- Experience upgrading and modernizing legacy Java codebases (older JDKs → modern JDKs), improving modularity, testability, and maintainability
- Strong understanding of event-driven architectures including message ordering, deduplication, idempotency, error handling, and delivery guarantees across asynchronous systems
- Proven ability to refactor or replace batch-oriented workflows with modern equivalents, balancing reliability, observability, and downstream data needs
- A track record of improving systems by consolidating fragmented or bespoke processes into cohesive, extensible codebases designed for long-term maintainability
- Experience working in high-throughput transactional systems, including throughput optimization, graceful degradation, and resilience under load
- Comfort with observability/instrumentation stacks (e.g., Datadog) for traceability, system health monitoring, and root cause analysis
- Familiarity with cloud ecosystems (GCP or AWS), message queuing systems, and distributed service orchestration
- Collaborative mindset and ability to partner closely with engineering and product teams through documentation, design reviews, and hands-on contributions
- Degree in computer science (or related field) preferred, or equivalent practical experience