Développeur généraliste Java/React principal
- Type :
- Lieu(x) :
- Toronto, Ontario
- Montréal, Québec
- Date d’affichage :
- ID de l’emploi :
- R152209
Nos équipes sont au coeur de tout ce que nous faisons. Ensemble, nous aidons les gens, les entreprises et la société à aller de l’avant dans les bons moments et à être résilients dans les moments difficiles.
Notre promesse aux employés, c’est ce qu’Intact vous promet en échange de votre engagement à vivre nos valeurs, à donner le meilleur de vous-mêmes, à être ouverts au changement et à vous investir dans votre carrière. Nous vous promettons de vous soutenir et de vous offrir des occasions de développement et des avantages financiers axés sur la performance dans un milieu de travail où vous pouvez façonner l’avenir, réussir en équipe et évoluer avec nous.
La rémunération chez Intact, c’est plus qu’une paie.
Aménagements de travail flexibles et formule de travail hybride
Possibilité d’acheter jusqu’à cinq jours de vacances additionnels par année
Autres avantages sociaux visant à soutenir votre bien-être mental et physique, incluant des soins de santé virtuels, un compte de dépenses mieux-être, et plus encore.
RAAE et autres possibilités d’épargne : jusqu’à 12 % du salaire, voire plus (renseignez-vous sur la possibilité d’un revenu de retraite garanti à vie)
Échelle salariale (sans s’y limiter) :
101,800 - 124,400Boni annuel cible, basé sur le salaire de base, avec un versement potentiel pouvant aller jusqu’au double de la cible (selon la performance individuelle de l’employé et les résultats financiers de l’entreprise)
12%Pour honorer notre promesse de réussir en équipe, nous partageons les fruits de notre succès avec nos employés par l’entremise d’un programme de bonis annuels et d’un régime d’achat d’actions des employés (RAAE), dans le cadre duquel Intact verse une cotisation correspondant à 50 % des actions nettes achetées par l’employé.
Nos régimes de retraite sont flexibles et offrent une sécurité à long terme pour nos employés après leur carrière. Nous sommes l’une des rares entreprises à toujours offrir un régime de retraite à prestations déterminées qui assure un revenu de retraite garanti à vie.
Le salaire de la personne retenue pour ce poste sera déterminé selon un ensemble de facteurs, dont : l’expérience professionnelle, les compétences, la contribution anticipée quant au poste, l’équité interne, etc. L’échelle salariale présentée ci-haut est pour une semaine de travail de 35 heures et pourrait s’appliquer à la majorité des différents profils de candidats, mais nous encourageons les candidats se situant en dehors de cette zone salariale à postuler.
À propos du poste
Nous cherchons un développeur généraliste (« full-stack ») principal pour rejoindre notre équipe très performante chargée de créer notre portail interne pour développeurs, qui accélère la livraison de logiciels dans toute l’entreprise. Il s’agit d’un poste dynamique et hautement influent, dans lequel vous prendrez en charge des fonctionnalités de bout en bout – des interfaces React aux microservices Spring Boot – et livrerez du code utilisé quotidiennement par les développeurs.
Ce que vous accomplirez chez nous :
Backend (Spring Boot / Java)
Concevoir, développer et exploiter des microservices Spring Boot 3 (Java 17/21) au sein d’une architecture distribuée qui inclut l’orchestration d’événements, le traitement d’événements, la notification, le suivi des tâches, le téléchargement de fichiers (AWS S3), et la découverte de services (Eureka).
Prendre en charge l’évolution du schéma de base de données avec Liquibase sur PostgreSQL et écrire des requêtes JPA/Hibernate performantes à l’aide de Hypersistence Utils pour les types de colonnes avancés.
Implémenter et faire évoluer notre moteur de flux personnalisé basé sur Spring Integration, notamment en créant des tâches événementielles réutilisables (Git, GitHub Enterprise, Jira, SSH, courriel) et des services d’exécution.
Renforcer la sécurité de tous les services à l’aide de Spring Security, OAuth2 (client + serveurs de ressources), JWT (jjwt), Azure AD SSO et HashiCorp Vault pour la gestion des secrets.
Développer et maintenir la passerelle API Gateway (Spring Cloud Gateway WebMVC) qui sert de point d’entrée à tous les services « back-end ».
Produire des API propres et auto-documentées avec Springdoc OpenAPI (Swagger UI) et HATEOAS lorsque cela est approprié.
Interface utilisateur (React / TypeScript)
Développer et livrer des fonctionnalités au sein d’un monorepo Turborepo regroupant plusieurs applications monopages basées sur React 19, TypeScript et Vite.
Créer des interfaces utilisateur riches et accessibles avec Material UI, Material React Table et des visualisations de données basées sur D3.
Gérer l’état côté client avec Zustand et TanStack React Query; et consommer des API REST et GraphQL (URQL).
Écrire des tests unitaires exhaustifs avec Vitest + Testing Library et des tests de bout en bout avec Playwright; maintenir une couverture de code élevée grâce aux rapports de couverture V8.
Contribuer à une bibliothèque de composants partagée et à un système de conception documenté dans Storybook; assurer la qualité du code à l’aide d’ESLint, Prettier, Knip (détection de code mort), Husky et lint-staged.
Responsabilités transversales
Veiller à la qualité du code grâce à des revues de code par les pairs, Checkstyle, le formatage Spotless, l'analyse SonarQube et les couvertures de code JaCoCo.
Mettre en production des services conteneurisés via des « builds » Docker multi-étapes, des graphiques Helm et des pipelines CI/CD Jenkins ciblant OpenShift (ROSA), avec analyses de sécurité intégrées via Nexus IQ, Twistlock et Polaris.
Écrire des tests unitaires JUnit 5 complets, des tests d’intégration Spring Boot et des tests de service basés sur WireMock sur le « backend »; maintenir les suites Playwright E2E à la fois côté Java et JavaScript.
Collaborez étroitement avec les gestionnaires de produits et vos collègues développeurs dans un environnement agile avec des mises en production fréquentes.
Encadrer et guider les développeurs juniors, prendre des décisions techniques et contribuer aux discussions sur l'architecture d'une plateforme en pleine expansion.
Ce que vous mettrez à profit :
Exigences
Plus de 8 ans d’expérience professionnelle dans le développement de logiciels, avec une solide expérience généraliste (« full stack »).
Expertise pratique approfondie de Java 17+ et de l'écosystème Spring (Spring Boot 3, Spring Security, Spring Data JPA, Spring Cloud).
Expérience dans la création d'applications React modernes avec TypeScript, y compris la gestion d'état (Zustand, React Query ou équivalent) et les bibliothèques de composants (MUI ou similaire).
Solide compréhension des bases de données relationnelles (PostgreSQL), des outils de migration de schémas (Liquibase ou Flyway) et des cadres ORM (Hibernate/JPA).
Expérience dans la conception d'API RESTful, OpenAPI/Swagger, et au moins une connaissance pratique de GraphQL.
Maîtrise de la conteneurisation (Docker), des pipelines CI/CD (Jenkins, GitHub Actions ou similaire) et des déploiements Kubernetes ou OpenShift.
Une discipline rigoureuse en matière de tests : vous rédigez de manière systématique des tests unitaires, d'intégration et E2E (JUnit 5, Vitest, Playwright, WireMock).
Diplôme universitaire de premier cycle en informatique ou toute combinaison équivalente d'études et d'expérience.
Atouts importants
Expérience avec Spring Cloud Gateway, Netflix Eureka ou des modèles de découverte/maillage de services similaires.
Connaissance de la création de graphiques Helm et des opérations OpenShift/ROSA.
Expérience pratique avec HashiCorp Vault, les flux OAuth2/OIDC et l'intégration Azure AD.
Connaissance des outils monorepo (Turborepo, pnpm workspaces) et de l'optimisation des « builds » (Vite, SWC).
Expérience avec les moteurs de flux/orchestrations ou Spring Integration.
Aisance avec MkDocs, Storybook ou d'autres outils de documentation destinés aux développeurs.
Connaissance d'AWS S3 et du SDK AWS pour Java.
Qui s’épanouit dans cette équipe :
Vous prenez des initiative et affrontez les problèmes au lieu de les fuir.
Vous communiquez de manière claire et directe – dans les demandes de modification (« Push Requests »), dans les documents de conception et en personne.
Vous êtes stimulé par les itérations rapides, les délais serrés et la responsabilité qui accompagne la mise en service d’une plateforme dont dépendent d’autres équipes.
Vous accordez une grande importance à la qualité du code, à l’expérience des développeurs et à l’amélioration du code source.
Vous êtes à l’aise de passer du « backend » à l’interface utilisateur au sein d’un même sprint.
Bilinguisme (français / anglais) – Pour les candidats situés au Québec, le bilinguisme est requis compte tenu de la nécessité d'interagir régulièrement avec des collègues anglophones partout au pays.
Aucune expérience de travail au Canada requise, mais nécessité d’avoir l’autorisation de travailler au Canada.
#LI-Hybrid
Ce poste jouera un rôle essentiel au sein de notre équipe. | This position will fill an essential role in our team.Égalité d’accès à l’emploi
Le respect est une des valeurs d’Intact. Pour nous, cela veut dire voir la diversité comme une force. Nous veillons à offrir un milieu de travail accessible où tout le monde se sent valorisé, inclus et encouragé à partager son point de vue unique.
Nous encourageons les candidatures de personnes appartenant à des groupes dignes d’équité, notamment les femmes, les Autochtones, les personnes handicapées, les personnes noires et les personnes faisant partie de la communauté 2ELGBTQI+.
Dans le cadre de l’engagement d’Intact envers la réconciliation, nous reconnaissons que nous travaillons, nous nous réunissons et voyageons dans un territoire habité à l’origine par les Premières Nations, les Métis, les Inuits, appelé aujourd’hui Canada. Cette histoire s’étend sur plusieurs siècles et continue d’évoluer aujourd’hui.
Nous avons mis en place des politiques qui visent à assurer aux personnes handicapées l’égalité d’accès et de participation, entre autres grâce à des mesures d’adaptation (accommodements) en milieu de travail. Un exemplaire de ces politiques est disponible sur demande.
Si nous pouvons rendre le processus de recrutement plus accessible pour vous, n’hésitez pas à nous le dire quand nous vous ferons part d’une possibilité d’emploi. Nous travaillerons avec vous pour répondre à vos besoins.
Si vous travaillez déjà pour Intact ou belairdirect, veuillez postuler à ce poste sur notre site carrière interne.
Merci de prendre note qu'Intact n'offre ni parrainage ni soutien concernant les démarches d'immigration, y compris, mais sans s'y limiter, les permis de travail fermés liés à l'entreprise. Les candidats doivent être admissibles à travailler au Canada à compter de la date prévue de leur entrée en fonction et durant toute la période de leur emploi. De plus, ils demeurent les seuls responsables de maintenir leur admissibilité au travail.