Job Type: Full Time
Job Category: IT
Job Description
Senior Java Engineer
Location: Toronto, ON
Work Model: Onsite
Job Type: Full Time
Roles and Responsibilities
-
Design, develop, and maintain high-quality, maintainable Java applications using clean code principles and established design patterns.
-
Write comprehensive, meaningful unit tests using JUnit and Mockito to ensure code correctness, reliability, and long-term maintainability.
-
Apply test-driven development (TDD) practices to drive design, maximize coverage, and prevent regressions.
-
Champion code quality through thorough code reviews, pair programming, and adherence to coding standards and best practices.
-
Refactor and improve existing codebases to reduce technical debt and enhance readability, performance, and testability.
-
Apply core Java concepts—collections, concurrency and multithreading, generics, streams, exception handling, and JVM memory management—to build robust solutions.
-
Integrate automated unit testing, static code analysis, and quality gates into CI/CD pipelines.
-
Use tools such as SonarQube and JaCoCo to measure, enforce, and continuously improve code quality and test coverage.
-
Build modular, reusable, and testable applications and APIs (REST web services) in Java.
-
Collaborate with architects, business and application analysts, operations teams, and testing specialists to deliver reliable, secure, high-quality solutions.
-
Diagnose, troubleshoot, and resolve complex technical, performance, and reliability issues.
-
Ensure information security standards and requirements are incorporated into all solutions.
-
Stay current with emerging technologies, including AI-assisted development and automated test generation, and evaluate how they can improve quality and productivity.
Skills Required
-
5+ years of software development experience in Java, spanning the full application development life cycle.
-
Strong command of core Java concepts, including collections, concurrency/multithreading, generics, streams, lambdas, exception handling, and JVM memory management.
-
Proven, hands-on experience writing effective unit tests with JUnit and mocking frameworks such as Mockito.
-
Solid understanding of test-driven development (TDD), test automation, and continuous testing practices.
-
Deep commitment to code quality, clean code, SOLID principles, and design patterns.
-
Experience with static code analysis and code coverage tools such as SonarQube and JaCoCo.
-
Experience building RESTful APIs and microservices using frameworks such as Spring / Spring Boot.
-
Experience with build tools such as Maven or Gradle.
-
Experience with source code management tools such as Git and Bitbucket.
-
Experience integrating automated tests and quality checks into CI/CD pipelines, for example, Jenkins.
-
Strong analytical, problem-solving, communication, and technical documentation skills.
-
Ability to work effectively in a fast-paced, cross-functional Agile environment.
Nice to Have (Added Advantage)
-
Experience using AI-assisted development tools, for example, GitHub Copilot, to accelerate coding and testing.
-
Experience with AI-powered or automated unit test generation frameworks, for example, Diffblue Cover, EvoSuite, or similar, is a strong added advantage.
-
Experience with integration, performance, and contract testing tools.
-
Experience with containerization and orchestration technologies such as Docker and Kubernetes.
-
Experience with cloud platforms such as AWS.
-
Knowledge of security scanning tools such as SonarQube, JFrog Xray, or similar.
-
Experience with Jira, Confluence, and Agile delivery practices.
-
University Degree or College Diploma in Computer Science or a related technology field.
-
Knowledge of the financial and insurance industries.
Primary Skills
Java, Spring Boot, JUnit/Mockito
Required Skills
Cloud Developer DevOps Engineer Engineering Lab Technician GCP Domain Architect Product Owner PySpark Developer Python Developer Sr. Golang Developer with Kubernetes Technical Project Manager