
General Motors Canada | April 2019 - January 2021 | Toronto, ON
Overview
As a Senior Software Developer at General Motors, I led design and architecture decisions for Android Automotive applications, focusing on infotainment core applications (Settings, Homescreen, Dialer, OffRoad, DriveMode, Air Down Mode, Climate, Seat Status Pane, Radio, Media Center, etc…) and applying disciplined software development principles.

Key Responsibilities and Achievements
Architecture and Design Leadership
- Led design and architecture decisions to support automotive challenges in Android
- Applied disciplined software development principles to ensure quality, maintainability and adaptability.
- Focused on infotainment’s core applications with complex requirements (e.g. Drive Mode, Off-Road, Vehicle Info, Settings, Climate, Super Cruise and more)
Software Development Standards
- Brought consistency across 15+ applications using industry best practices
- Implemented Clean Architecture and Domain-Driven Design principles
- Utilized Kotlin, Dependency Injection, and Reactive Programming
- Applied agile methodologies (Scrum, SAFe) for efficient development
SDK Development
- Developed, designed, and led GMCore internal SDK
- Created SDK used by 10+ applications, improving cohesion and reusability
- Allowed for configuration and flexibility while maintaining consistency
- Reduced development time and improved code quality across applications
Advanced Visualization
- Integration of 3D models within Android applications
- Utilized Unreal Engine and Filament for high-quality 3D rendering
- Enhanced user experience with interactive 3D visualizations
Cross-Component Collaboration
- Collaborated across components to share knowledge and inspire teammates
- Reduced the average number of defects per cadence by ~50%
- Improved product reliability through better collaboration and code reviews
CAN Integration
- Designed, developed, and tested customer-focused features
- Integrated with CAN through VHAL and CarPropertyManager APIs
- Developed features that interact with vehicle systems and sensors
Technical Stack
- Languages: Kotlin, Java
- Frameworks: Android, Android Automotive
- Architecture: Clean Architecture, Domain-Driven Design
- Tools: Dependency Injection, Reactive Programming
- 3D Technologies: Unreal Engine, Filament
- Methodologies: Agile, Scrum, SAFe
- Vehicle Integration: CAN, VHAL, CarPropertyManager APIs
Challenges and Solutions
Challenge
Ensuring consistency across multiple applications with different requirements
Solution
Developed and enforced architectural standards and shared SDK components
Challenge
Integrating complex 3D models in automotive applications
Solution
Leveraged Unreal Engine and Filament for optimal performance and quality
Challenge
Reducing defects in a complex automotive software environment
Solution
Implemented rigorous code review processes and cross-team knowledge sharing
Impact
- Established architectural standards that improved development efficiency
- Reduced defects by 50% through better collaboration and better processes
- Enabled advanced 3D visualization capabilities in automotive infotainment
- Delivered high-quality, reliable software for GM’s vehicle platforms