Java Software Engineer
- Toronto, ON, Canada
Full-time
Applications open in a new tab.
Job details
- Job type
- Full-time
- Apply by
- Experience
- 5+ years of software development experience in Java, spanning the full application development life cycle.
- Posting language
- English
- Posted
Original job description
Senior Java Engineer
Toronto, ON (Onsite)
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.
More about this job
Responsibilities
Design, develop, test, and maintain Java applications and REST APIs, applying clean code, design patterns, TDD, and automated quality checks. Collaborate across technical and business teams to resolve complex issues and deliver secure, reliable solutions.
Requirements
Requires 5+ years of Java development experience, strong core Java knowledge, and hands-on expertise with JUnit, Mockito, TDD, and code quality practices. Candidates should also have experience with Spring or Spring Boot, REST APIs, build and source control tools, and CI/CD pipelines.
Skills
- Java
- JUnit
- Mockito
- Test-Driven Development
- Clean Code
- SOLID Principles
- Design Patterns
- Concurrency and Multithreading
- Spring Boot
- REST APIs
- Maven
- Gradle
- Git
- SonarQube
- JaCoCo
- CI/CD
Visa sponsorship
Not detected in the job text
Categories
- Software
- Technology
Keywords
- Java
- JUnit
- Mockito
- Test-Driven Development
- Unit Testing
- Test Automation
- Core Java
- Collections
- Concurrency
- Multithreading
- Generics
- Streams
- Lambdas
- JVM Memory Management
- Spring
- Spring Boot
- REST APIs
- Microservices
- Maven
- Gradle
- Git
- Bitbucket
- Jenkins
- CI/CD
- SonarQube
- JaCoCo
- Docker
- Kubernetes
- AWS
- Agile