Responsibilities
- Design, develop, and implement scalable, secure, and high-performance full-stack applications using Java, JavaScript, and related technologies
- Architect and build backend services, APIs, and microservices with a focus on scalability, reliability, and maintainability
- Develop responsive, accessible, and high-quality front-end user experiences
- Partner with product managers and stakeholders to define technical strategy and translate business requirements into system designs
- Own and contribute across the full software development lifecycle, from architecture and design to deployment and optimization
- Establish and promote best practices in coding, testing, observability, performance optimization, and AI usage
- Lead architectural discussions and influence technical decisions for long-term scalability and performance
- Identify and resolve complex technical challenges, including production issues and system bottlenecks
- Champion automated testing strategies including unit, integration, and end-to-end testing
- Mentor and coach junior and mid-level developers, fostering a culture of engineering excellence
- Stay current with emerging technologies and drive adoption of innovative solutions
Requirements
- Bachelor’s degree in Computer Science, Software Engineering, or related field (or equivalent practical experience)
- 5+ years of professional experience in full stack development with strong expertise in Java (Java 11/17+)
- Deep proficiency in Java and experience designing distributed systems
- Strong experience building scalable APIs and microservices architectures
- Experience with front-end technologies including HTML, CSS, JavaScript/TypeScript, and frameworks such as React
- Experience with cloud platforms (AWS, Azure, or GCP) and containerization/orchestration tools such as Docker and Kubernetes
- Strong understanding of system design principles including scalability, resiliency, and security
- Proven ability to troubleshoot complex systems and implement long-term solutions
- Experience with automated testing frameworks (e.g., JUnit, Playwright) and quality engineering practices
- Strong communication and collaboration skills in agile environments
- Experience mentoring developers and contributing to team growth and technical direction
Nice to Have
- Experience with event-driven architectures and message queues (e.g., Kafka, RabbitMQ)
- Experience contributing to system architecture or technical strategy
- Advanced knowledge of relational databases (e.g., PostgreSQL, MySQL) and ORM frameworks (Hibernate, JPA)
- Experience designing and maintaining CI/CD pipelines (e.g., GitHub Actions, Jenkins, GitLab CI)
- Understanding of agile methodologies and modern development practices (TDD/BDD)
- Experience with application performance tuning and diagnostics at the OS level
- Experience with the Spring ecosystem (Spring Boot, Spring MVC, Spring Security)
- Experience in SaaS, enterprise software, or automation platforms
- Contributions to open-source projects or strong GitHub portfolio
- Experience building AI-integrated product architectures
- Experience with app marketplaces or platform integrations
- Experience decomposing monolithic applications into microservices
- Experience integrating with SAP ABAP or HANA
- Proficiency with shell scripting
- Experience deploying and integrating with AWS
- Familiarity with Windows and Mac OS environments
- Familiarity with Gradle and Tomcat
Additional Information
- Pay Transparency: The typical base salary range for this position is 132,000 - 165,000 CAD annually. The range represents base salary only, and does not include company bonus, incentive for sales roles, equity or benefits, as applicable. Final compensation will be determined based on the candidate's skills, experience, and relevant qualifications.
- Vacancy Status: Existing vacancy
- AI Transparency Disclosure: As part of our commitment to hiring transparency and in compliance with Ontario law, please be advised that we utilize artificial intelligence (AI) tools during our interview process. Specifically, we may use an AI-enabled notetaking assistant to help capture and summarize interview discussions. This tool is used solely to assist our hiring team in summarizing candidate information; all final hiring and selection decisions are made exclusively by individuals on the hiring team.