Senior Java 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
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.
More about this job
Responsibilities
Design, develop, and maintain high-quality Java applications using clean code principles and TDD. Collaborate with cross-functional teams to build modular APIs and integrate automated quality gates into CI/CD pipelines.
Requirements
Requires over 5 years of Java development experience with strong expertise in core Java, Spring Boot, and unit testing frameworks. Candidates must be proficient in CI/CD tools and committed to SOLID principles and clean code.
Skills
- Java
- JUnit
- Mockito
- TDD
- Spring Boot
- REST APIs
- Microservices
- SonarQube
- JaCoCo
- Maven
- Gradle
- Git
- Bitbucket
- Jenkins
- CI/CD
- SOLID Principles
Visa sponsorship
Not detected in the job text
Categories
- Software
- Technology
- Engineering
Keywords
- Java
- JUnit
- Mockito
- TDD
- Clean Code
- SOLID Principles
- Design Patterns
- JVM Memory Management
- Concurrency
- Multithreading
- Streams
- Lambdas
- SonarQube
- JaCoCo
- REST Web Services
- Spring
- Spring Boot
- Microservices
- Maven
- Gradle
- Git
- Bitbucket
- Jenkins
- CI/CD
- Agile
- Static Code Analysis
- Unit Testing
- Technical Debt
- Information Security