
General Motors Canada | Avril 2019 - Janvier 2021 | Toronto, ON
Aperçu
En tant que Développeur Senior en Logiciel chez General Motors, j’ai dirigé les décisions de conception et d’architecture pour les applications Android pour les système d’info-divertissement, en mettant l’accent sur les applications principales (Settings, Homescreen, Dialer, OffRoad, DriveMode, Air Down Mode, Climate, Seat Status Pane, Radio, Media Center, etc…) et en appliquant des principes disciplinés de développement logiciel.

Responsabilités et Réalisations Clés
Leadership en Architecture et Conception
- Direction de la conception et de l’architecture pour répondre aux défis liés à l’utilisation d’Android dans l’automobile
- Application de principes disciplinés de développement logiciel pour assurer la qualité, la maintenabilité et l’adaptabilité.
- Concentration sur les applications principales d’infodivertissement avec des exigences complexes (e.g. Drive Mode, Off-Road, Vehicle Info, Settings, Climate)
Normes de Développement Logiciel
- Apporte de la cohérence à travers 15+ applications en utilisant les meilleures pratiques de l’industrie
- Mise en œuvre des principes de Clean Architecture et de Domain Driven Design
- Utilisation de Kotlin, Injection de Dépendances et Programmation Réactive
- Application des méthodologies agiles (Scrum, SAFe) pour un développement efficace
Développement de SDK
- Développement, conception et direction du SDK interne GMCore
- Création de SDK utilisé par 10+ applications, améliorant la cohésion et la réutilisabilité
- Permis la configuration et la flexibilité tout en maintenant la cohérence
- Réduction du temps de développement et amélioration de la qualité du code pour les applications impliquées.
Visualisation Avancée
- Intégration de modèles 3D dans plusieurs applications
- Utilisation de Unreal Engine et/ou Filament pour le rendu 3D de haute qualité
- Amélioration de l’expérience utilisateur avec des visualisations 3D interactives
Collaboration Inter-Composants
- Collaboration entre les composants pour partager les connaissances et inspirer les coéquipiers
- Réduction du nombre moyen de bugs par cadence de ~50%
- Amélioration de la fiabilité du produit grâce à une meilleure collaboration et des revues de code
Intégration CAN
- Conception, développement et test de fonctionnalités centrées sur le client
- Intégration avec CAN via VHAL et CarPropertyManager
- Développement de fonctionnalités qui interagissent avec les systèmes et capteurs du véhicule
Stack Technique
- Langages : Kotlin, Java
- Frameworks : Android, Android Automotive
- Architecture : Clean Architecture, Domain Driven Design
- Outils : Injection de Dépendances, Programmation Fonctionelle Réactive
- Technologies 3D : Unreal Engine, Filament
- Méthodologies : Agile, Scrum, SAFe
- Intégration Véhicule : CAN, VHAL, API CarPropertyManager
Défis et Solutions
Défi
Assurer la cohérence entre plusieurs applications avec différentes exigences
Solution
Développement et application de normes architecturales et de composants SDK partagés
Défi
Intégration de modèles 3D complexes dans les applications automobiles
Solution
Utilisation de Unreal Engine et Filament pour des performances et une qualité optimales
Défi
Réduction des bugs dans un environnement logiciel automobile complexe
Solution
Mise en œuvre de processus rigoureux de revue de code et de partage des connaissances entre équipes
Impact
- Établissement de normes architecturales qui ont amélioré l’efficacité du développement
- Réduction des bugs de 50% grâce à une meilleure collaboration et de meilleurs processus
- Permis la visualisation de modèles 3D avancés sur le système d’infodivertissement
- Livraison de logiciels de haute qualité et fiables pour les plateformes de véhicules de GM