Au CN, nous sommes déterminés à poursuivre l'excellence. Nous sommes fiers de réaliser un travail de qualité supérieure et d'innover continuellement afin de façonner le chemin de fer de l'avenir. En tant que cheminots responsables, nous prenons les bonnes décisions en tout temps en accordant la priorité à la sécurité, en agissant avec intégrité en tout temps et en nous tenant responsables. Nous croyons en la réussite collective et nous favorisons l’inclusion et la collaboration afin d’obtenir durablement des résultats exceptionnels pour nos clients.
Résumé des fonctions
La personne titulaire du poste est responsable des livrables qui lui sont confiés et veille à harmoniser sa charge de travail avec les priorités établies afin de respecter les engagements de service. Elle contribue à l'ensemble de la solution en analysant les spécifications fonctionnelles pour déterminer les meilleures approches techniques, puis en assurant le développement, la mise en œuvre et le soutien des applications. Elle utilise des outils de développement modernes, y compris des technologies d'assistance à la programmation fondées sur l'intelligence artificielle, afin d'optimiser l'efficacité du codage, les essais unitaires et la qualité des solutions. Selon le mandat, le rôle peut s'exercer dans un contexte de projet, d'amélioration continue ou de soutien applicatif. La personne titulaire peut également se spécialiser dans un domaine technologique particulier, comme les systèmes embarqués, les systèmes d'information géographique (SIG), les portefeuilles d'affaires ou les systèmes d'entreprise.
Principales responsabilités
Livraison
- Développer un code performant et de qualité répondant aux spécifications de conception et aux exigences des revues de code, en utilisant au besoin des outils modernes et des assistants de programmation basés sur l'IA.
- Effectuer la configuration des environnements de développement lorsque requis.
- Participer à la mise en production complète des solutions.
- Soutenir les équipes de développement en fournissant les versions applicatives et l'information requise pour les plans de déploiement.
Expertise technique
- Collaborer avec les équipes de conception fonctionnelle afin de comprendre les exigences liées à des solutions de complexité moyenne.
- Évaluer les répercussions techniques des conceptions fonctionnelles sur les applications existantes.
- Produire les conceptions techniques et les structures de données pour des applications de complexité moyenne à élevée.
- Maintenir une documentation technique complète et promouvoir l'utilisation d'outils d'IA de base afin d'optimiser les méthodes de développement.
Architecture
- Contribuer à l'élaboration des normes de conception et de développement utilisées au sein de la pratique.
- Documenter les architectures logicielles et les plans directeurs à partir des exigences et des conceptions fonctionnelles.
- Participer à l'application des principes d'architecture d'entreprise du CN.
Contrôle de la qualité
- Veiller à ce que les indicateurs clés de performance liés à la qualité soient définis, mesurés et produits conformément aux normes de développement.
- Assurer l'exécution uniforme d'essais de qualité, notamment les essais unitaires, d'assemblage et de régression automatisés, dans le cadre des mandats confiés.
Conditions de travail
Le poste comporte des conditions de travail normales dans un environnement de bureau selon un horaire régulier du lundi au vendredi et est admissible au modèle de travail hybride du CN. Le rôle exige la gestion de multiples priorités et la réalisation des livrables dans les délais établis, avec le soutien de l'équipe afin d'assurer une charge de travail durable et efficace. Un soutien occasionnel en dehors des heures normales peut être requis lorsque la personne participe au soutien d'applications dans un environnement ferroviaire opérationnel fonctionnant en continu.Exigences
Expérience
Développement logiciel
- Plus de 5 ans d'expérience à titre de développeur ou développeuse
- Expérience pratique des composantes internes de Linux, des conteneurs et de la programmation de scripts
- Expérience pratique de la gestion des dépôts de code source et de fichiers exécutables à l'aide de Git et d'Azure DevOps (ADO)
- Expérience pratique de la conception de systèmes distribués synchrones et asynchrones
- Expérience de la conception et du développement d'applications frontales (front-end) et de microservices dorsaux (back-end)
- Expérience dans la coordination d'équipes techniques et la collaboration avec des partenaires multidisciplinaires afin de livrer des solutions répondant aux objectifs organisationnels
- Expérience pratique de l'utilisation d'outils de développement modernes et d'outils de programmation assistée par l'IA pour optimiser les méthodes de travail
- Les candidatures présentant une combinaison équivalente d'études, de formation et d'expérience seront considérées.
Éducation/Certification/Désignation
- Baccalauréat en informatique ou en génie informatique
- Les candidatures présentant une expérience pratique, des études ou une formation équivalentes seront considérées.
Compétences
- Nous nous soucions les uns des autres
- Nous visons l'excellence
- Nous réussissons, ensemble
- Nous menons nos activités de façon responsable
- Conformité
- Service à la clientèle
- Capacité à comprendre et utiliser l'IA et les données
- Exécution à fort impact
- Optimisation des processus
Connaissances et compétences techniques
- Maîtrise des langages et cadres de développement tels que Java, Python, JavaScript, TypeScript, Angular et Spring Boot
- Connaissance des approches d'infrastructure en tant que code, notamment Terraform et Ansible
- Capacité à produire des schémas d'architecture, des guides et de la documentation technique destinés à différentes équipes
- Capacité à automatiser les chaînes d'intégration et de déploiement continus (CI/CD) à l'aide d'Azure DevOps
- Connaissance des pratiques de génie logiciel assisté par l'intelligence artificielle et des techniques de formulation d'instructions pour le développement logiciel
- Connaissance des cadres de mesure, de la journalisation, du traçage distribué, du profilage, des technologies infonuagiques natives et des outils d'observabilité associés
Incidence sur l'entreprise