Summary
✨ AI‑Generated
Join an engineering team as a Senior Java Engineer responsible for designing and maintaining robust applications. You will apply clean coding principles, design patterns, TDD, comprehensive testing, code reviews, pair programming, and advanced Java concepts while improving performance, maintainability, and testability.
Highlights
Permanent full-time onsite opportunity focused on high-quality Java engineering, automated testing, technical debt reduction, and strong software development practices.
Description
Role :: Senior Java Engineer
Location :: Toronto, ON– Onsite
Fulltime_ Permanent Role
Job Description
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.