Écran Hummer EV 2023

Développeur Senior en Logiciel - Android Automotive

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