hirly

TD

Solutions Design IT Specialist

Toronto, Ontario

See how you match this job — and similar ones. Free.

Upload your resume and hirly scores it against this role at TD first, then against similar open jobs, and shows where you fit and why.

PDF or DOCX, up to 12MB. No sign-up to see your matches.

Get past the screening software and onto a recruiter's desk

hirly rewrites your resume for this job — matching the keywords and skills in the posting, moving your most relevant experience to the top, and writing a cover letter to fit. About 30 seconds.

  • Keywords matched to this posting
  • Fit score before you apply
  • Cover letter included
Tailor my resume for this job →

Apply from your AI assistant

Connect hirly to Claude and ask it to apply to this job. hirly tailors your resume, fills the employer’s form and asks before sending. ChatGPT: manual setup today.

Some employer sites stop an application at a CAPTCHA or sign-in and hand it back with a link. Applying needs a paid plan. Works with any assistant that supports MCP.

hirly's read of this role

Seniority
Mid level
Stated salary
$125,000 – $156,000 per year
Country
CA
Work mode
On-site / unstated
First seen by hirly
19 Oct 2026

Derived automatically from the posting. Upload your resume above to see how the role scores against it.

the posting

Work Location:

Toronto, Ontario, Canada

Hours:

37.5

Line of Business:

Technology Solutions

Pay Details:

$125,000 - $156,000 CAD

This role is eligible for a discretionary variable compensation award that considers business and individual performance.

TD is committed to providing fair and equitable compensation opportunities to all colleagues. Growth opportunities and skill development are defining features of the colleague experience at TD. Our compensation policies and practices have been designed to allow colleagues to progress through the salary range over time as they progress in their role. The base pay actually offered may vary based upon the candidate's skills and experience, job-related knowledge, geographic location, and other specific business and organizational needs.

As a candidate, you are encouraged to ask compensation related questions and have an open dialogue with your recruiter who can provide you more specific details for this role.

Job Description:

Job Description:

We are looking for a Senior Java Developer / Solutions Design IT Specialist to join our Payments Engineering team and help build, maintain, and evolve high-performance, reliable, fault-tolerant applications. Our systems move money, so correctness, durability, and predictable performance under load are non-negotiable.

This role is for an engineer who goes beyond using Java and Spring APIs. You understand how Java works internally: streams, threads, concurrency primitives, memory management, garbage collection, and JVM runtime behaviour. You can trace a throughput drop to lock contention, an allocation hotspot, or a misconfigured connection pool, and you know how seemingly small implementation choices affect latency, memory footprint, and system reliability.

You will deliver new capabilities, proactively identify and resolve performance and reliability issues, and build comprehensive automated test suites that give the team confidence to ship. You will work comfortably at both the application level and the underlying Java/JVM level.

Responsibilities

Work with architects, product owners, QE, SRE, and operations teams to turn business requirements into robust technical solutions.

Design, build, and maintain scalable, fault-tolerant services using Java and Spring Boot. Write clean, maintainable, production-grade code.

Build event-driven components that produce and consume messages through Kafka or MQ. Ensure correct ordering, delivery guarantees, and handling of poison messages.

Implement distributed transaction patterns, including SAGA orchestration and choreography with compensating actions, and the Transactional Outbox pattern for reliable event publishing.

Design idempotent APIs and message consumers that tolerate retries, duplicate delivery, and partial failures without double-processing payments.

Apply durable execution principles so long-running payment workflows can survive process restarts, infrastructure failures, and downstream outages, and resume correctly.

Use modern Java features where they fit: virtual threads, structured concurrency, records, sealed types, and pattern matching. Understand their trade-offs and limits, such as virtual thread pinning and the effect on ThreadLocal usage.

Identify, diagnose, and resolve throughput, latency, and memory issues across the application, JVM, messaging, and database layers.

Build resilience into services through timeouts, retries with backoff, circuit breakers, bulkheads, back-pressure, and graceful degradation.

Build comprehensive automated test suites, including unit, integration, contract, component, and end-to-end tests.

  • Write tests that target concurrency, idempotency, duplicate and out-of-order delivery, partial failure, and recovery scenarios.
  • Conduct thorough code reviews focused on correctness, thread safety, resource management, and performance.

Mentor team members on Java internals, concurrency, performance engineering, and distributed systems best practices.

Contribute to architecture decisions, technical design documents, and engineering standards.

Skills and Qualifications

Must Have

  • 10+ years of professional software development experience, with at least 5 years building production systems in Java.
  • Hands-on experience with modern Java (17+, ideally 21), including virtual threads, records, sealed types, and pattern matching.
  • Deep understanding of Java internals (Concurrency, Streams, Memory Management, and JVM behaviour)
  • Strong experience with Spring Boot and the wider Spring ecosystem (Spring Core, Spring Data/JPA, Spring Transaction Management, Spring Kafka/JMS). You should understand how Spring works internally, including proxies, bean lifecycle, transaction propagation, and auto-configuration.
  • Production experience with Apache Kafka (partitions, consumer groups, offsets, rebalancing, delivery semantics) and an enterprise messaging system such as IBM MQ (queues, transactions, redelivery, backout handling).
  • Solid understanding of distributed systems: consistency models, partial failure, idempotency, retries, ordering, and exactly-once vs. at-least-once trade-offs.
  • Practical experience designing and building event-driven and distributed systems, including microservices.
  • Clear understanding of distributed systems fundamentals: CAP trade-offs, eventual consistency, ordering guarantees, network partitions, and failure modes.
  • Proven experience implementing: idempotency, the SAGA pattern with compensating transactions, the Transactional Outbox pattern, retry and deduplication strategies
  • Understanding of durable execution concepts: workflow state persistence, replay, checkpointing, and guaranteed completion of long-running processes.
  • Experience with resilience patterns, such as circuit breakers, bulkheads, rate limiting, timeouts, and back-pressure (for example, using Resilience4j).
  • Strong relational database skills: SQL tuning, execution plans, indexing, isolation levels, locking, and connection pool management.
  • Strong analytical and problem-solving skills, with a methodical, evidence-based approach to diagnosing complex issues.
  • Ability to explain complex technical concepts clearly to both technical and non-technical stakeholders.
  • Ownership mindset, with accountability for the quality and operational stability of delivered systems.

Nice To Have

  • Experience with durable execution or workflow engines such as Temporal, Camunda, or similar.
  • Payments domain knowledge: ISO 20022, real-time payment rails (e.g., Interac, RTR, FedNow), wires, ACH/EFT, clearing and settlement, and reconciliation.
  • Familiarity with performance and benchmarking tools such as JMH, Gatling, k6, or JMeter.
  • Experience with resilience libraries such as Resilience4j, and with chaos or fault-injection testing.
  • Observability experience with Open Telemetry, Micrometer, Grafana, or Dynatrace.
  • Containerization and cloud experience with Docker, Kubernetes, including JVM tuning for container memory and CPU limits.

Education

Bachelor's degree in Computer Science, Software Engineering, or a related field, or equivalent practical experience.

#LI-TECH

Who We Are:

TD Securities offers a wide range of capital markets products and services to corporate, government, and institutional clients who choose us for our innovation, execution, and experience. With more than 6,500 professionals operating out of 40 cities across the globe, we strive to make every interaction, product and experience remarkably human and refreshingly simple. Our services include underwriting and distributing new issues, providing trusted advice and industry-leading insight, extending access to global markets, and delivering integrated transaction banking solutions. In 2023, we acquired Cowen Inc., offering our clients access to a premier U.S. equities business and highly-diverse equity research franchise, while growing our strong, diversified investment bank.

Together, we

Original posting on TD's site ↗

Listed on hirly, a job board. hirly is not the employer: TD is hiring for this role.

Browse similar roles

Want this one?

Upload your resume and hirly rewrites it for this job and writes the cover letter — in about thirty seconds, before you sign up.

Tailor my resume for this job