16 Sep
|
PeoplePilot
|
Toronto
16 Sep
PeoplePilot
Toronto
Roles and Responsibilities
Software Development
- Design, develop, and maintain high-quality, maintainable Java applications using clean code principles, SOLID principles, and established design patterns.
- Build modular, reusable, and testable Java applications and RESTful APIs.
- Develop microservices using frameworks such as Spring and Spring Boot.
- Apply strong knowledge of core Java, including:
- Collections
- Concurrency and multithreading
- Generics
- Streams and lambdas
- Exception handling
- JVM memory management
Testing and Quality Engineering
- Write comprehensive and meaningful unit tests using JUnit and Mockito to ensure code correctness, reliability, and maintainability.
- Apply Test-Driven Development (TDD) practices to drive software design, maximize test coverage, and prevent regressions.
- 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.
- Evaluate and adopt automated testing and AI-assisted test-generation techniques where appropriate.
Code Quality and Technical Excellence
- 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, maintainability, and testability.
- Diagnose, troubleshoot, and resolve complex technical, performance, and reliability issues.
- Promote clean code, SOLID principles, design patterns, and engineering best practices across development activities.
Collaboration and Delivery
- Collaborate with architects, business and application analysts, operations teams, and testing specialists to deliver reliable, secure, and high-quality solutions.
- Work effectively within a fast-paced,
cross-functional Agile environment.
- Contribute to technical documentation and communicate technical concepts effectively to both technical and non-technical stakeholders.
Security and Continuous Improvement
- Ensure information security standards and requirements are incorporated into all software solutions.
- Stay current with emerging technologies, including AI-assisted development and automated test generation.
- Evaluate new tools and technologies to improve software quality, engineering productivity, and delivery efficiency.
Required Skills and Qualifications
Qualified Experience
- 5+ years of software development experience using Java across the full application development life cycle.
- Hands-on experience designing, developing, testing, deploying, and maintaining enterprise applications.
Java and Application Development
- Strong command of core Java concepts, including:
- Collections
- Concurrency and multithreading
- Generics
- Streams and lambdas
- Exception handling
- JVM memory management
- Experience building RESTful APIs and microservices using Spring/Spring Boot.
- Strong understanding of clean code, SOLID principles, and design patterns.
Testing and Code Quality
- Proven hands-on experience writing effective unit tests using JUnit and mocking frameworks such as Mockito.
- Strong understanding of Test-Driven Development (TDD), test automation, and continuous testing practices.
- Experience with static code analysis and code coverage tools such as SonarQube and JaCoCo.
- Understanding of code quality gates and automated quality checks within CI/CD environments.
Build, Source Control, and CI/CD
- Experience with build and dependency-management tools such as Maven or Gradle.
- Experience with source code management tools such as Git and Bitbucket.
- Experience integrating automated tests, code quality checks, and quality gates into CI/CD pipelines, such as Jenkins.
Professional Skills
- Strong analytical and problem-solving abilities.
- Excellent communication and technical documentation skills.
- Ability to work effectively in a collaborative, cross-functional Agile environment.
Nice to Have / Added Advantage
AI-Assisted Development and Testing
- Experience using AI-assisted development tools such as GitHub Copilot to accelerate coding, testing, and software development activities.
- Experience with AI-powered or automated unit test-generation frameworks such as Diffblue Cover, EvoSuite, or similar technologies.
Advanced Testing
- Experience with integration, performance, and contract testing tools.
- Knowledge of automated testing strategies beyond unit testing.
Cloud and DevOps
- Experience with containerization and orchestration technologies such as Docker and Kubernetes.
- Experience with cloud platforms such as AWS.
- Knowledge of security and vulnerability scanning tools such as SonarQube, JFrog Xray, or similar technologies.
Agile and Collaboration Tools
- Experience with Jira, Confluence, and Agile delivery practices.
Education
- University Degree or College Diploma in Computer Science, Software Engineering, or a related technology field.
Industry Experience
- Knowledge or experience in the financial services and/or insurance industries.
📌 Senior Java Software Engineer (Toronto)
🏢 PeoplePilot
📍 Toronto