En travaillant chez Home Depot, vous pouvez être vous-même tout en contribuant à quelque chose de plus grand.
Description du poste
Le développeur en chef, Logiciels, est responsable de toutes les activités requises dans le cadre du cycle de vie de développement de logiciels, y compris la supervision et la mise en œuvre réussie des solutions logicielles. Il travaille en collaboration avec les architectes afin de faire des choix de conception de haute qualité, d’établir les normes techniques et de cerner de façon proactive les occasions d’améliorer l’architecture des systèmes. Le développeur en chef, Logiciels, fournit des conseils et de l’encadrement aux développeurs débutants et les aide à élaborer des modules et des solutions. Il travaille en étroite collaboration avec les autres développeurs en chef, les architectes, les développeurs, Logiciels, les analystes commerciaux et les analystes, Assurance de la qualité, dans un environnement en constante évolution qui repose fortement sur le travail d’équipe.
Principales responsabilités
Cycle de vie de développement de logiciels
• Analyser les exigences des utilisateurs pour définir les objectifs commerciaux et concevoir les caractéristiques et les fonctionnalités des systèmes.
• Rédiger des codes bien conçus, maintenables, testables, propres et efficaces qui sont optimisés et extensibles.
• Effectuer l’analyse et le débogage des logiciels et des mises à l’essai complètes.
• Passer en revue, mettre à l’essai et déboguer les codes des membres de l’équipe pour s’assurer que les pratiques exemplaires sont respectées et pour maintenir des normes de code de haute qualité au sein de l’équipe.
• Élaborer des solutions en utilisant les bases de données privilégiées de Home Depot pour assurer leur stabilité, leur fiabilité et leur rendement.
• S’assurer que les applications respectent la qualité, la réactivité et le rendement définis dans les objectifs de niveau de service.
• S’assurer que l’équipe de développement suit les pratiques exemplaires en matière de codage, de mise à l’essai et de documentation.
• Diriger les efforts relatifs à la révision de code et s’assurer de la qualité globale des bases de codes.
• Fournir des conseils et assurer la supervision en veillant à ce que les codes, les configurations, les problèmes techniques et les solutions soient soigneusement documentés pour répondre aux besoins futurs en matière de référence et de vérification.
• Jouer un rôle proactif dans le maintien de normes élevées en matière de documentation afin de simplifier les processus de développement et de faciliter l’échange de connaissances au sein de l’équipe.
Communication et collaboration
• Travailler en étroite collaboration avec les équipes interfonctionnelles pour définir, concevoir et mettre en place de nouvelles fonctionnalités et s’assurer que les solutions répondent aux exigences.
• Agir à titre de personne-ressource principale pour les directeurs de projet, les analystes commerciaux et les associés d’autres services afin de s’assurer que le développement est conforme aux objectifs commerciaux généraux.
Résolution de problèmes et prise de décisions techniques
• Repérer les goulots d’étranglement et les bogues, et trouver des solutions à ces problèmes.
• Prendre les décisions techniques essentielles liées au processus de développement, aux technologies et aux outils utilisés dans la création et l’entretien des solutions SAP ou d’autres applications informatiques.
Encadrement des équipes et mentorat
• Fournir des directives techniques et des lignes directrices à l’équipe de développement, la guider dans les activités quotidiennes, établir la priorité des tâches et s’assurer que les étapes clés du développement sont atteintes en temps opportun.
• Offrir du mentorat aux développeurs sur les compétences techniques, le perfectionnement professionnel et les pratiques exemplaires.
• Organiser des séances d’échange de connaissances.
Supervision de l’architecture
• Travailler en étroite collaboration avec les architectes et les membres de la haute direction pour déterminer l’architecture technique et s’assurer que les projets respectent les objectifs commerciaux.
• Faire des choix de conception de haute qualité et établir les normes techniques, y compris les normes en matière de programmation logicielle, d’outils et de plateformes.
• Repérer de façon proactive les occasions d’améliorer l’architecture, l’extensibilité et le rendement des systèmes, en veillant à ce que les applications puissent croître pour répondre aux besoins des clients et des associés.
Amélioration continue
• Promouvoir l’amélioration continue des processus de développement, des outils et des techniques utilisées par l’équipe.
• Soutenir l’amélioration continue en étudiant les solutions de rechange et les technologies, et en les présentant pour examen architectural.
Gestion des projets et des risques
• Surveiller l’avancement des projets et s’assurer que les développeurs sont sur la bonne voie et que les échéances sont respectées.
• Gérer l’affectation des ressources et résoudre les problèmes au sein de l’équipe.
• Repérer les risques au début du processus de développement et proposer des solutions pour atténuer ces risques.
Compétences
• Pragmatisme.
• Collaboration.
• Communication efficace.
• Souci de la clientèle.
• Amélioration des résultats.
• Gestion des conflits.
Aptitudes
Aptitudes requises pour tous les développeurs en chef
• Excellent esprit d’analyse et solides compétences en diagnostic de pannes.
• Excellentes aptitudes pour la communication à l’écrit et à l’oral.
• Compétences avérées en leadership et capacité à gérer une équipe et à fournir des conseils techniques.
• Connaissance approfondie des méthodes de développement de logiciels (p. ex., méthodes agile et de la mêlée).
• Excellentes aptitudes pour la collaboration et expérience de travail dans un environnement interfonctionnel.
• Aptitude à travailler de manière autonome, avec un minimum de supervision.
• Volonté d’apprendre à travailler avec de nouvelles technologies et conceptions ainsi qu’avec de nouveaux langages de programmation.
Aptitudes liées à SAP
• Maîtrise des langages de programmation (p. ex., ABAP et programmation orientée objet).
• Connaissance approfondie du développement SAP ou de langages de programmation précis.
• Expérience de travail avec SAP S/4HANA, la plateforme infonuagique SAP et les techniques d’intégration SAP.
• Modélisation, conception, mise en œuvre et tests basés sur le modèle de programmation SAP.
• Expérience pratique en mise en œuvre et mise à niveau de SAP S/4HANA.
Aptitudes liées à Java
• Expérience en élaboration de microservices extensibles et résilients avec Java et Spring Boot en mettant à profit divers principes de conception, comme l’application à 12 facteurs, l’application infonuagique native et l’approche axée sur les interfaces de programmation d’applications (API-first).
• Expérience avec les bases de données SQL et NoSQL, comme PostgreSQL, Redis et Bigtable, et les solutions de stockage Google Cloud Platform, comme le stockage infonuagique et BigQuery.
• Expérience en direction de la mise en œuvre de nouveaux systèmes ou de l’actualisation de systèmes existants.
• Expérience dans la rédaction de codes propres et modulaires conformes aux principes de codes propres comme SOLID.
• Expérience avec Spring Security, SAML, OAuth et OpenID Connect.
• Expérience avec les environnements de développement de traitement par lots et en flux comme Apache Beam et Apache Spark.
• Expérience avec des outils de tests automatisés (p. ex., REST Assured et Cucumber) et des outils de test de performance (p. ex., Locust et JMeter).
• Expérience avec les systèmes à code source ouvert et les outils de surveillance du rendement comme Grafana et Prometheus.
• Connaissance des plateformes infonuagiques, de préférence Google Cloud Platform, et de la conteneurisation (Docker et Kubernetes).
• Expérience avec les outils de développement et de productivité comme BitBucket, Jira et GitHub Copilot.
• Expérience dans la documentation de la conception avec des diagrammes comme la modélisation C4 et les diagrammes d’activités.
Aptitudes liées aux applications frontales dans Angular
• Expérience dans le développement d’applications frontales en utilisant l’environnement de développement Angular, JavaScript, TypeScript, CSS, SCSS et HTML5, ainsi que des bibliothèques de conception et de marque comme Material Design.
• Expérience dans la création d’applications Web en utilisant des scripts côté serveur, Express et Node.js.
• Expérience avec les outils de test d’intégration et de test unitaire JavaScript comme Karma, Jasmine et Mocha.
• Expérience avec le codage accessible, la Loi sur l’accessibilité pour les personnes handicapées de l’Ontario et les Règles pour l’accessibilité des contenus Web.
• Expérience dans divers secteurs de développement d’applications frontales, comme le travail avec les interfaces de programmation d’applications, la sécurité, le comportement du navigateur ainsi que le stockage local ou de session du travail.
• Connaissance approfondie des modèles de conception d’applications frontales, de la gestion de l’état, des structures de données, du rendement des sites Web et de la gestion des progiciels.
• Expérience avec les outils de développement et de productivité comme BitBucket, Jira et GitHub Copilot.
• Connaissance des plateformes d’analytique Web comme Google Analytics.
Aptitudes liées à Android
• Expérience dans la création d’applications Android en utilisant Kotlin.
• Expérience pratique avec Jetpack Compose pour créer des interfaces utilisateurs modernes et déclaratives.
• Solide expérience avec l’architecture MVVM et en rédaction de codes propres et modulaires conformes aux principes SOLID.
• Expérience avec des modèles de conception (G4).
• Connaissance des bibliothèques de réseautage comme Retrofit pour une intégration efficace de l’interface de programmation d’applications.
• Maîtrise des environnements de développement intégrés Android Studio et Gradle.
• Expérience avec la console Google Firebase pour gérer la configuration et surveiller le rendement, la stabilité et l’analyse des pannes.
• Expérience avec la console Google Play pour surveiller le rendement, la stabilité et les pannes.
• Expérience avec les outils de développement et de productivité comme BitBucket, Jira et GitHub Copilot.
• Expérience avec les bases de données comme Room.
• Expérience en matière de tests unitaires et de mise à l’essai des interfaces utilisateurs (Espresso, JUnit et Mockito).
• Expérience en direction de la mise en œuvre de nouvelles initiatives d’affaires ou de l’amélioration d’applications importantes.
• Expérience dans la documentation de la conception avec des diagrammes comme la modélisation C4 et les diagrammes d’activités.
• Participation active à la révision des codes afin d’améliorer leur qualité et d’encourager l’échange de connaissances.
• Expérience avec les environnements de développement d’injection de dépendances comme Dagger, Hilt ou Koin.
• Connaissance de Kotlin Multiplatform (KMP) et de Compose Multiplatform (CMP).
Aptitudes liées à iOS
• Expérience dans la création d’applications iOS en utilisant Swift.
• Expérience pratique avec SwiftUI pour créer des interfaces utilisateurs modernes et déclaratives.
• Solide expérience avec l’architecture MVVM et en rédaction de codes propres et modulaires conformes aux principes SOLID.
• Expérience avec des modèles de conception (G4).
• Expérience avec les environnements de développement de réseautage comme URLSession et les outils externes comme Alamofire.
• Maîtrise de l’environnement de développement intégré Xcode.
• Expérience avec la console Google Firebase pour gérer la configuration et surveiller le rendement, la stabilité et l’analyse des pannes.
• Expérience avec App Store Connect pour surveiller le rendement, la stabilité et les pannes.
• Expérience avec les outils de développement et de productivité comme BitBucket, Jira et GitHub Copilot.
• Expérience avec Core Data.
• Expérience en matière de tests unitaires et de mise à l’essai des interfaces utilisateurs.
• Expérience en direction de la mise en œuvre de nouvelles initiatives d’affaires ou de l’amélioration d’applications importantes.
• Expérience dans la documentation de la conception avec des diagrammes comme la modélisation C4 et les diagrammes d’activités.
• Participation active à la révision des codes afin d’améliorer leur qualité et d’encourager l’échange de connaissances.
• Connaissance de Kotlin Multiplatform (KMP) et de Compose Multiplatform (CMP).
Aptitudes liées à l’ingénierie de données
• Expérience dans la conception et la mise en œuvre de plateformes de données extensibles, sécurisées et à haut rendement pour soutenir les analyses de l’entreprise et les charges de travail opérationnelles.
• Expérience en direction du développement de pipelines extensibles ETL ou ELT pour intégrer, transformer et charger des données structurées et non structurées; excellente maîtrise de SQL pour la manipulation et l’optimisation des données.
• Expérience dans le développement de systèmes pour surveiller, vérifier et améliorer la qualité des données; assurer l’exactitude, l’uniformité et la conformité des ressources de données; et appliquer les politiques en matière de gouvernance des données.
• Expérience dans la création et l’encadrement d’équipes d’ingénieurs de données hautement performantes en favorisant une culture d’excellence technique et de perfectionnement continu.
• Expérience dans l’amélioration des systèmes de stockage et de traitement des données afin de maximiser le rendement et de réduire les coûts liés aux environnements infonuagiques et à l’autohébergement.
• Expérience avec la mise en application des normes de développement, y compris le contrôle des versions, les mises à l’essai et la documentation, afin de créer des bases de codes maintenables et extensibles.
• Expérience dans l’évaluation et l’intégration de nouveaux outils et de nouvelles plateformes pour améliorer les capacités relatives aux données et assurer l’efficacité future de la plateforme de données.
• Expérience dans l’élaboration de systèmes de surveillance et d’alerte pour détecter et résoudre les problèmes de façon proactive, en assurant une disponibilité et une fiabilité importantes, comme Grafana et Prometheus.
• Connaissance des plateformes infonuagiques, de préférence Google Cloud Platform, et de la conteneurisation (Docker et Kubernetes).
• Expérience avec les environnements de développement de Google Cloud Platform, comme Apache Airflow, pour gérer et automatiser les flux de données complexes.
• Expérience avec les environnements de développement de traitement par lots et en flux comme Apache Beam et Apache Spark.
• Expérience avec les bases de données SQL et NoSQL, comme PostgreSQL, Redis et Bigtable, et les solutions de stockage Google Cloud Platform, comme le stockage infonuagique et BigQuery.
• Expérience en élaboration d’applications extensibles et résilientes avec les environnements de développement Python et FastAPI ou Flask en mettant à profit divers principes de conception, comme l’application à 12 facteurs, l’application infonuagique native et l’approche axée sur les interfaces de programmation d’applications (API-first)..
• Expérience en collaboration avec des équipes interfonctionnelles afin d’élaborer des solutions relatives aux données qui répondent aux besoins en matière d’analyse et de veille économique.
• Expérience avec les outils de développement et de productivité comme BitBucket, Jira et GitHub Copilot.
• Expérience en repérage et en traitement des goulots d’étranglement dans les pipelines de données et l’infrastructure ainsi qu’en optimisation du traitement des données et des accès pour favoriser une utilisation efficace.
Supérieur immédiat ou subordonnés
• Supérieur immédiat : directeur, Technologie, ou directeur principal, Technologie.
Exigences relatives aux déplacements
• Déplacements réguliers au centre de soutien aux magasins de Toronto.
Exigences physiques
• Position assise pendant des périodes prolongées.
• Tâches répétitives.
• Utilisation d’un ordinateur et d’autres technologies.
Conditions de travail
• Travail de bureau : ordinateurs et caméra pour les réunions.
• Travail de nuit et de fin de semaine à l’occasion pour soutenir les mises à jour des systèmes et le déploiement des projets.
Études
• Baccalauréat en informatique ou expérience équivalente.
Expérience professionnelle
• Sept à dix ans d’expérience professionnelle pertinente.
Expérience en direction
• s. o.
Accréditations
• s. o.
Autres exigences et atouts
Aptitudes liées à Java
• Compréhension des solutions de développement grâce à l’utilisation de l’architecture axée sur les événements et les flux.
Aptitudes liées aux applications frontales dans Angular
• Expérience de travail avec diverses bibliothèques de graphiques comme Highcharts, Google Charts ou amCharts.
Postulez En Ligne