Epsilon Solutions LTD
Senior Full Stack Engineer
Senior full stack engineer in Toronto building Java applications and REST APIs (Spring/Spring Boot) with a heavy focus on quality: unit testing (JUnit, Mockito), TDD, static analysis (SonarQube, JaCoCo), and CI/CD gates (Jenkins). React/Angular, Node.js, Docker/Kubernetes, and AWS are listed as preferred extras.
- Compensation
- Not disclosed
- Location
- Toronto, Canada
- Work setup
- Not specified
- Seniority
- Senior
- Employment
- Full time
- Experience
- 5+ years
- Category
- Fullstack
- Posted
Skills
Must have
- 5 years of software development experience in Java/Node.js spanning the full application development life cycle
- Strong command of core Java concepts: collections, concurrency/multithreading, generics, streams, lambdas, exception handling, JVM memory management
- Hands-on experience writing effective unit tests with JUnit and Mockito
- Solid understanding of TDD, test automation, and continuous testing practices
- Deep commitment to code quality, clean code, SOLID principles, and design patterns
- Working knowledge of secure coding practices and application security fundamentals (e.g. OWASP Top 10)
- Experience building RESTful APIs and microservices using Spring / Spring Boot
- Experience with static code analysis, code coverage, and security scanning tools such as SonarQube and JaCoCo
- Experience with build tools (Maven or Gradle) and source control (Git and Bitbucket)
- Experience integrating automated tests, quality checks, and security gates into CI/CD pipelines (e.g. 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
- Experience with modern UI technologies (React, Angular, TypeScript, JavaScript, HTML5, CSS)
- Experience using AI-assisted development tools (e.g. GitHub Copilot)
- Experience working with AI agents or agentic development workflows
- Experience with backend API technologies such as Node.js
- Experience with Backstage and related developer portal technologies
- Experience building and maintaining CI/CD pipelines and related tooling
- Experience with containerization and orchestration such as Docker and Kubernetes
- Experience with cloud platforms such as AWS
- Experience with Jira, Confluence, and Agile delivery practices
- University degree or college diploma in Computer Science or a related technology field
Full description
Job Description
Job DescriptionRole: Senior Full Stack EngineerLocation: Toronto, ONTerms: Full TimeJob DescriptionRoles and Responsibilities:
- Design, develop, and maintain high-quality, maintainable Java applications and services 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) and continuous testing practices to drive design, maximize coverage, and prevent regressions.
- Build modular, reusable, and testable applications and APIs (REST web services) in Java.
- Embed security-by-design throughout the development life cycle, following secure coding standards and addressing vulnerabilities early.
- 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, security scanning, 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.
- 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, security, and reliability issues.
- Stay current with emerging technologies, including AI-assisted development and developer experience platforms, and evaluate how they can improve quality and productivity.
Skills Required:
- 5 years of software development experience in Java / NodeJs, spanning the full application development life cycle.
- Experience with modern UI technologies (for example, React, Angular, TypeScript, JavaScript, HTML5, CSS) is preferred.
- 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.
- Working knowledge of secure coding practices and application security fundamentals (for example, the OWASP Top 10).