Appartenir à Air Canada, c’est appartenir à un symbole canadien, Air Canada récemment élue meilleur transporteur aérien en Amérique du Nord. Faites décoller votre carrière en vous joignant à notre équipe novatrice et diversifiée à l’avant-garde du transport aérien de passagers.
Joignez-vous à Air Canada - une marque canadienne emblématique et le transporteur aérien le mieux classé en Amérique du Nord - alors que nous continuons à faire évoluer nos plateformes numériques afin de soutenir les expériences opérationnelles et client essentielles.
Le responsable du développement est un chef technique chevronné, qui adopte une approche pratique et définit l’orientation technique, supervise l’exécution des sprints et veille à l’atteinte des résultats au sein d’une équipe de développement agile. Le titulaire de ce poste est responsable de la conception des solutions techniques, de la prévisibilité de la livraison, de la qualité du code et de la préparation au déploiement, en veillant à ce que les solutions soient conformes à l’architecture d’entreprise, aux normes d’ingénierie et aux objectifs commerciaux.
Le responsable du développement assure la direction technique au quotidien grâce à la coordination de la mise en œuvre, à l’accompagnement et à une contribution active. Le responsable du développement est la principale autorité chargée de la mise en œuvre dans le respect des contraintes architecturales approuvées : il transmet à ses supérieurs les décisions de conception qui sortent des modèles définis et veille à ce que les enseignements tirés de l’exploitation soient intégrés au répertoire des tâches.
Laissez votre carrière prendre son envol en vous joignant à une équipe qui redéfinit l’expérience numérique des passagers et se trouve à l’avant-garde de l’industrie mondiale du transport aérien.
Responsabilités
- Diriger l’exécution des engagements liés aux sprints, l’exécution quotidienne des activités, la prévisibilité des livraisons et l’atteinte des résultats de l’équipe; veiller à ce que les histoires et les tâches soient bien définies, estimées, séquencées et livrées, tout en gérant de manière proactive la portée, les dépendances, les priorités techniques et les compromis.
- Décomposer les exigences complexes en tâches techniques claires, analyser les interactions et les dépendances entre les systèmes, anticiper les risques et orienter la mise en œuvre et la validation.
- Diriger la conception des solutions techniques et assumer la responsabilité des décisions architecturales liées à la mise en œuvre, dans le respect des contraintes approuvées, en veillant à l’harmonisation avec les normes technologiques de l’entreprise et la vision à long terme des produits; évaluer l’évolutivité, le rendement, la sécurité, la facilité de maintenance et les compromis de conception.
- Diriger et examiner l’élaboration des spécifications de conception détaillée afin d’en assurer la clarté, la faisabilité et la conformité à l’architecture générale; appliquer les modèles modernes approuvés, notamment les microservices, l’architecture sans serveur et l’architecture modulaire à composants, et obtenir l’approbation du chef technique pour les conceptions à risque élevé ou celles qui s’écartent des modèles approuvés.
- Définir et faire évoluer la stratégie technique de l’équipe de développement, les approches de mise en œuvre, les stratégies d’intégration et les pratiques d’ingénierie, conformément aux normes de l’entreprise; participer à des initiatives interéquipes visant à promouvoir l’uniformité des directives techniques entre les équipes et les plateformes.
- Agir à titre de principale autorité technique chargée de la mise en œuvre au sein de l’équipe; appliquer les modèles architecturaux et les normes d’ingénierie, prendre des décisions techniques dans le respect des contraintes établies et effectuer des recours hiérarchiques auprès du chef technique concernant les décisions qui touchent les services communs, les conceptions faisant intervenir plusieurs équipes ou l’harmonisation globale de l’entreprise.
- Veiller à la préparation des mises en production, notamment en ce qui concerne les critères de qualité relatifs aux tests, à la sécurité et au rendement, les procédures opérationnelles, la couverture des outils d’observabilité et les plans de repli ou d’atténuation.
- Établir, faire évoluer et faire respecter les normes de codage, les cadres de test, les pratiques de documentation, les contrôles de sécurité, les pratiques d’observabilité et les pratiques d’IA responsable afin de favoriser la facilité de maintenance et l’évolutivité.
- Effectuer des révisions approfondies du code des pairs et des demandes de fusion, y compris du code généré par l’IA; évaluer les plans de test et les scripts de tests unitaires pour en vérifier l’exactitude, la qualité, la fiabilité, la sécurité, le rendement, la facilité de maintenance et la conformité aux modèles approuvés.
- Participer activement à la conception, au développement, à la modification, à l’intégration, à la maintenance et au dépannage des applications et des services, tant pour les composants frontaux et dorsaux que pour les environnements infonuagiques et de développement et d’exploitation; diriger les mises en œuvre complexes ou à haut risque et donner l’exemple en appliquant les meilleures pratiques de codage, de test, de débogage et d’optimisation du rendement.
- Mettre en place une stratégie de tests unitaires, d’automatisation des tests et d’évaluation de la couverture par l’IA afin de respecter les critères de qualité et de prévenir les défauts.
- Améliorer les pipelines d’intégration et de déploiement, l’automatisation de la compilation et de l’infrastructure, les pratiques Devsecops, l’automatisation des mises en production et les processus de développement assistés par l’IA afin d’accroître la fréquence des déploiements et la productivité des développeurs.
- Collaborer avec les propriétaires des Produits, l’Assurance de la qualité, les concepteurs et les facilitateurs Scrum pour élaborer conjointement les récits d’utilisateurs, définir les critères d’acceptation, affiner le répertoire des tâches et concilier la faisabilité technique, la testabilité et les priorités commerciales; favoriser la prise de décisions rapides concernant les changements de portée.
- Assumer la responsabilité des interventions techniques en cas de problèmes en production; diriger le triage, les enquêtes, le débogage, les mesures d’atténuation et le rétablissement des services, en coordonnant le soutien des autres équipes et les recours hiérarchiques au besoin.
- Diriger l’analyse des causes fondamentales des incidents et des défauts relevant de l’équipe de développement; contribuer à l’optimisation du rendement après la mise en production et piloter les mesures correctives et préventives, en veillant à ce que les enseignements tirés de l’exploitation soient intégrés au répertoire des tâches et que les tâches correspondantes soient menées à bien.
- Établir et tenir à jour une documentation technique claire, précise et à jour, ainsi qu’une documentation opérationnelle pour les logiciels nouveaux et mis à jour, afin de faciliter la maintenance, l’intégration des nouveaux employés et le soutien opérationnel.
- Surveiller et améliorer les indicateurs de livraison et d’ingénierie, notamment les taux de défauts, les délais de traitement des demandes de fusion, la couverture des tests, la fréquence des déploiements, la fréquence des replis et les indicateurs de fiabilité; interpréter la cadence des validations de code dans son contexte, parallèlement aux mesures de qualité et de livraison, afin d’orienter les mesures d’amélioration.
- Diriger et encadrer les équipes d’ingénierie logicielle dans l’ensemble des couches technologiques grâce à la programmation en binôme, à la rétroaction et à des conseils pratiques; favoriser une culture de rigueur professionnelle, de responsabilisation, d’apprentissage continu, d’innovation, de collaboration et de sécurité psychologique, sans assumer de responsabilités officielles de gestion du personnel.
- Favoriser l’adoption responsable des technologies émergentes, notamment l’IA générative, les systèmes d’IA agentique et les outils de développement assistés par l’IA, dans le respect des normes approuvées de l’entreprise en matière d’architecture, de sécurité et d’IA responsable.
- Communiquer clairement les concepts techniques, les décisions de conception, les risques et les compromis aux parties prenantes techniques et non techniques afin de favoriser l’harmonisation entre les équipes.
Qualités personnelles
- Inspirer et dynamiser les équipes de l’Ingénierie en faisant preuve d’un grand enthousiasme et en favorisant une culture de l’excellence et de la responsabilisation.
- Faire preuve d’un esprit novateur et orienté vers l’avenir, en explorant constamment les technologies émergentes et les solutions non traditionnelles pour relever des défis complexes.
- Instaurer et maintenir une culture de la confiance, de la transparence et de la sécurité psychologique, afin de permettre un dialogue ouvert qui favorise la diversité des points de vue.
- Remettre en question les hypothèses et le statu quo en faisant preuve de curiosité et de courage, afin de favoriser l’amélioration continue et d’accroître le rendement de l’équipe.
- Assurer un équilibre entre la vision stratégique et les conseils techniques pratiques, en veillant à l’harmonisation entre les objectifs commerciaux et l’exécution technique.
- Donner l’exemple en faisant preuve d’intégrité, de résilience et d’un engagement en faveur du mentorat des collègues pour qu’ils atteignent leur plein potentiel.
Qualifications
Obligatoire
- Baccalauréat en informatique ou dans un domaine connexe.
- Au moins cinq années d’expérience en développement logiciel dans un environnement de production, dont au moins deux à trois dans un rôle de leadership technique.
- Capacité avérée à diriger et à encadrer des équipes d’ingénierie couvrant l’ensemble des couches technologiques, à prendre des décisions architecturales dans le respect des contraintes approuvées de l’entreprise et à faire respecter les normes d’ingénierie et de qualité du code; expérience démontrée des méthodes Agile, de la gestion du carnet de produits, de la collaboration interfonctionnelle, de l’établissement des priorités techniques et de la responsabilisation à l’égard des engagements liés aux sprints et des résultats de livraison.
- Expertise technique approfondie et pratique des langages de programmation et des cadres de développement modernes (p. ex. React, React Native, Angular, Node.js, Java, NestJS), des API RESTful, d’OpenAPI/Swagger et des modèles d’intégration.
- Solide expérience des plateformes infonuagiques (AWS, Azure, GCP), des modèles d’architecture infonuagique native, des conteneurs et de leur orchestration (Docker, Kubernetes), de l’automatisation de l’infrastructure, des pipelines d’intégration et de déploiement, des tests automatisés et des pratiques modernes de développement et d’exploitation et Devsecops.
- Expérience des bases de données relationnelles (p. ex. PostgreSQL, MySQL) ou des bases de données NoSQL (p. ex. MongoDB, Cassandra), ou des deux, ainsi qu’une solide compréhension des cadres d’accès aux données, des normes industrielles et des meilleures pratiques en matière d’intégration de bases de données et d’optimisation du rendement.
- Excellentes aptitudes pour la communication et capacité à harmoniser les décisions techniques entre les équipes, à collaborer avec des parties prenantes techniques et non techniques et à expliquer des concepts techniques à un public non spécialisé.
- Faire preuve de ponctualité et fiabilité avérées pour favoriser la réussite globale de l’équipe dans un milieu trépidant.
Atouts
- Expérience avec MuleSoft ou d’autres bus de services d’entreprise basés sur Java (p. ex. IBM IIB, Tibco).
- Expérience des plateformes de gestion des API comme Apigee, IBM API Connect ou Mulesoft et des systèmes d’entreprise.
- Connaissance de l’IA générative, de l’intégration des modèles d’apprentissage automatique, des outils de développement assistés par l’IA, de la conception de requêtes ou des cadres d’évaluation de l’IA.
- Expérience acquise dans des environnements de grande envergure, réglementés ou dont les activités sont essentielles à la mission; expérience dans le secteur du transport aérien ou du voyage et compréhension des défis et des systèmes propres à ce secteur.
- Certifications en architecture infonuagique, leadership Agile ou cadres de sécurité (p. ex., architecte de solutions AWS, facilitateur Scrum, CISSP).
Conditions D’emploi
Les candidats doivent être admissibles à travailler dans le pays concerné au moment où une offre d’emploi est présentée et sont responsables de l’obtention des permis de travail, visas ou autres autorisations nécessaires. La preuve de l’admissibilité doit être fournie avant la date de début.
Exigences Linguistiques
À compétences égales, la préférence sera accordée aux candidats bilingues.
Diversité et inclusion
Air Canada est résolument engagée en faveur de la diversité et de l’inclusion et vise à créer un milieu de travail sain, accessible et gratifiant qui met en valeur la contribution unique de nos employés au succès de notre entreprise.
En tant qu'employeur qui garantit l'égalité d'accès à l'emploi, nous encourageons les candidatures les plus diverses afin de pouvoir nous doter d’un effectif varié et représentatif de nos clients et des communautés où nous vivons et offrons nos services.
Air Canada remercie tous les candidats de leur intérêt, mais seules les personnes sélectionnées pour une entrevue seront contactées.