Ryan Gordon

Développeur Android Senior

ryan.gordon@ryegordo.com

Assistance aux développeurs sur demande

Je comble l’écart entre l'entretien des logiciels à court et à long terme lorsqu’un poste à temps plein n’est pas justifié.

Migration de Java vers Kotlin

Mises à jour des applications et leurs fonctionnalités

Corrections d'anomalies
&
Réduction des incidents

Entretien du code
&
Nettoyage de la dette technique

Compétences

 années
SDK Android
 années
Kotlin
 années
Java
 années
Coroutines/Flow Kotlin
 années
RxJava
 années
Jetpack Compose
 années
Data Binding
 années
Dagger1/Dagger2/Hilt
 années
JUnt4/5
 années
Room
 années
Retrofit
 années
SDK GoogleMaps
 années
API Camera2 / CameraX
 années
Bluetooth
 années
ExoPlayer

Publications

Breadcrumbs • Géolocalisation

Une application Android qui affiche la localisation de vos photos et vidéos sur une carte Google Maps intégrée. Elle comprend un appareil photo intégré pour prendre des photos avec les informations de localisation affichées en surimpression.

Bientôt disponible au Google Play Store.

The Power of Kotlin Delegation

Introduction à Kotlin Delegates et à leur utilisation pour optimiser votre code.

Mon cheminement

Je suis un développeur de logiciels passionné avec plus de 15 ans d'expertise dans le secteur.

Le développement logiciel est à la fois mon métier et ma passion.

Je travaille avec le SDK Android depuis Android 3.0 (Honeycomb, API 11). Android était très différent à l'époque, à peine reconnaissable par rapport à aujourd'hui.
J'ai vécu tout le voyage.

Je suis passionné par le développement logiciel et le SDK Android, peut-être même un peu trop, diront certains. Après une longue journée de travail, je reste souvent dans mon bureau à domicile, absorbé par mes projets personnels, jusque tard dans la soirée. Mais mon parcours n'a pas commencé avec Android.

J'ai découvert la programmation au Cégep avec le C++. C'est là où je suis tombé amoureux de ce domaine. Bien que le C++ soit resté mon langage principal, j'ai appris d'autres langages comme l'assembleur, le COBOL et le Visual Basic, et ensuite à l'université où j'ai continué à étudier le C++, mais aussi le VHDL, le C# et le Java.

Les microcontrôleurs et les systèmes embarqués occupent toujours une place particulière dans mon cœur.

Un événement qui a changé ma vie s'est produit lorsque j'ai découvert le microcontrôleur AVR Atmel ATmega.

Avant Raspberry Pi, il y avait Arduino, et avant Arduino, ATmega, un microcontrôleur programmé en C, alimenté par une plaque d'essai et doté de circuits intégrés, de LED, de capteurs, de moteurs et de tout type de matériel imaginable. C'est lors d'un concours de robotique que je me suis passionné pour ATmega, et je me suis rapidement lancé dans mes propres projets personnels… qui se sont poursuivis bien après l'obtention de mon diplôme, lorsque j'ai débuté ma vie professionnelle.

Mon projet le plus mémorable a été de connecter un capteur de mouvement à un microcontrôleur ATmega16, lui-même relié à ma sonnette. Ainsi, lorsque mes chats rentraient à la maison, ils pouvaient sonner. J'ai baptisé l'appareil « Catbell ». J'y ai intégré d'autres fonctionnalités, comme un interrupteur magnétique qui interrompait le compte à rebours de 30 secondes à l'ouverture de la porte d'entrée, évitant ainsi que la sonnette ne retentisse lorsque d'autres personnes entraient ou sortaient. J'ai ensuite exploré la connectivité Wi-Fi et Bluetooth, ce qui m'a permis de surveiller et de contrôler l'appareil depuis une application de bureau C#. Puis, j'ai eu l'idée de connecter Catbell à mon téléphone portable.

Ce serait quand même chouette de recevoir une notification sur mon téléphone au lieu de sonner à la porte, non ?

J'ai commencé par développer l'application Catbell Companion pour Android, je suis tombé amoureux d'Android, et le reste appartient à l'histoire. Après Catbell, je me suis consacré à d'autres projets Android, mais c'est ici que tout a commencé, avec Android 3.0 : une application communiquant avec un objet connecté avant même que l'Internet des objets ne se popularise.

Mes projets personnels sont essentiels à ma croissance et à mon apprentissage.

J'ai tout appris sur Android par moi-même, grâce à la pratique, à Stack Overflow et à des cours en ligne. C'est parfaitement adapté au secteur d'Android, qui est en constante évolution.

Android est un domaine qui évolue continuellement! Il faut se former et s'adapter en permanence aux nouveautés. On ne charge plus les données de manière asynchrone avec des loaders, une technique pour laquelle j'ai investi énormément d'efforts. J'ai maîtrisé RxJava juste avant que Google n'annonce le passage aux coroutines et à Flow. Je suis devenu expert en liaison de données avant de devoir tout recommencer avec Jetpack Compose.

Bien que je possède plus de 10 ans d'expérience professionnelle en développement Android (après 5 ans en tant que développeur Java), une part importante de mon parcours est constituée de mes projets personnels, dont l'objectif est de progresser et d'apprendre. La liberté et la flexibilité de coder à ma guise me permettent de rester à la pointe des évolutions Android ; des leçons que j'applique ensuite dans mon travail. Aujourd'hui, en tant que développeur Android senior, je continue de m'investir dans des projets personnels.

Expérience

Juin 2025 – Aujourd'hui

Desjardins

consultant indépendant
Développeur mobile senior (Android)

Mon équipe travaille sur l'application Services mobiles Desjardins, où nous développons de nouvelles fonctionnalités et résolvons des problèmes. En tant que développeur senior, je joue un rôle important : j'assiste mon responsable technique lors des intégrations de nouvelles versions, j'anime les discussions techniques et je suis la personne de référence qui aide les autres membres de l'équipe. Je contribue également à la gestion de l'équipe en accompagnant la progression des développeurs juniors et en leur offrant du mentorat.

Desjardins est mon premier client en tant que travailleur indépendant par le biais de ma société RyeGordo Technologies Inc. 

Mai 2025 – Aujourd'hui

RyeGordo Technologies Inc.

Fondateur

J'ai fondé ma société dans le but de fournir des services en tant que travailleur indépendant.

Janvier 2025 – Juin 2025
Novembre 2022 – septembre 2023

Radio-Canada

Développeur mobile senior (Android)

J'ai eu deux contrats distincts pour leur suite d’applications, notamment Ici Tou.tv, CBC Gem, Ohdio et Info. J'ai eu l'occasion rare de travailler sur des applications destinées aux téléphones, aux tablettes, aux téléviseurs ainsi qu'à d'autres appareils. Wear OS. J'ai enquêté et travaillé sur des problèmes cruciales concernant ExoPlayer Cela inclut l'optimisation des commandes des lecteurs, l'ajout de sous-titres et de sous-titrage codé, ainsi que le diagnostic des problèmes de codecs audio et vidéo. J'ai également intégré la fonction image dans l'image à Ici Tou.tv et à CBC Gem.

L'analyse des données et la gestion du consentement relatif à la protection de la vie privée ont été au cœur de mon deuxième contact. Cela inclurait également  Kotlin Multi Platform avec un développement en iOS et JavaScript.

Octobre 2023 – Septembre 2024

Lyft

Développeur mobile senior (Android)

J'ai fait partie du pôle Transports, Vélos et Trottinettes de l'entreprise, responsable d'une suite d'applications de vélos en libre-service, dont CitiBike, Bixi et Bay Wheels. Mon travail s'étendait sur deux équipes distinctes, sous la responsabilité de deux gérants différents. J'étais également en charge de la migration des applications vers Android 15 à l'échelle de l'entreprise. Par ailleurs, j'étais désigné comme mentor pour l'intégration d’un nouveau membre de l’équipe. J'ai animé des sessions de mentorat structurées, basées sur un programme de formation prédéfini, et je l'ai accompagné directement dans sa prise en main de nos outils et technologies.

En plus du développement Android, mon expérience chez Lyft m'a permis de travailler comme développeur backend python pour notre Interface utilisateur pilotée par serveur. Une part importante de l'interface utilisateur de l'application réside dans le backend et est déployée sur les applications mobiles Android et iOS, mais mon travail s'est étendu au-delà pour inclure le développement de microservices et de bases de données.

Juin 2022 – Octobre 2022

Wise Systems

Développeur mobile senior (Android)

J'ai participé à une mission passionnante d'optimisation des itinéraires pour faciliter les livraisons du dernier kilomètre. J'ai contribué au développement de l'application mobile pour chauffeurs, qui centralisait les informations d'itinéraire et de destination. Outre la possibilité de modifier dynamiquement les destinations, l'application transmettait des informations de statut et de progression à un portail web géré par le commerçant.

J'ai joué un rôle majeur dans l'amélioration de nos processus de développement logiciel et j'étais un participant clé dans la gestion des versions. J'ai également secondé le responsable de notre équipe mobile dans le mentorat des développeurs juniors.

Octobre 2018 – Mai 2022

Génétec

Développeur mobile senior (Android)

Cela reste le point culminant de ma carrière, où j'ai véritablement vécu le cliché selon lequel mon travail se transforme en passe-temps.

Chez Genetec, nous avons eu le privilège de développer une application entièrement nouvelle à partir de zéro. Cela nous a permis de tirer parti des dernières innovations d'Android. C'était également ma première expérience avec un code source Kotlin 100%. J'ai ainsi pu me familiariser avec… Architecture MVI et a vécu le Migration de RxJava vers Kotlin Coroutines et Flow. L'une de mes contributions les plus importantes a été l'intégration de la caméra, fortement personnalisée, à l'origine avec API Camera2, et puis plus tard avec CaméraX. L'intégration critique d'un module de reconnaissance de plaques d'immatriculation s'ensuivrait, me donnant l'occasion de renouer avec mes débuts en tant que… C++ développeur avec JNI/NDK.

J'ai joué un rôle crucial en tant que responsable technique pour l'un de nos projets lors de sa migration vers une nouvelle équipe. Outre mon expertise métier, j'étais chargé de l'intégration et de la formation des nouveaux développeurs qui allaient prendre la relève. J'ai ensuite été promu responsable du développement logiciel Android, encadrant quatre développeurs. J'ai collaboré avec de nouveaux collègues, également chefs d'équipe et responsables de leurs propres groupes de développeurs. Avec mon homologue iOS, j'ai approfondi ma compréhension des phases de conception et de planification du développement des fonctionnalités, et j'ai eu l'opportunité d'y apporter une contribution précieuse. C'est durant cette période que j'ai découvert mon intérêt pour le DevOps et la maintenance des pipelines. Une initiative à l'échelle de l'entreprise visait l'intégration de Checkmarx ; étant le premier à y parvenir au sein de mon équipe, j'ai ouvert la voie à l'intégration des pipelines pour les autres équipes.

Mai 2018 – Septembre 2022

Shopify

Développeur mobile senior (Android)

A contribué au projet Shopify Core.

Avril 2015 – Mai 2018

Nuglif (La Presse)

Développeur mobile (Android)

J'ai été surpris de constater que j'avais déjà un niveau intermédiaire lorsque j'ai décidé de me reconvertir professionnellement dans le développement Android. J'étais très impliqué dans mes projets personnels et mes apprentissages ont considérablement influencé ma capacité à contribuer efficacement au sein de mon équipe. Le plus marquant a été l'introduction de la liaison de données Android, qui s'est avérée essentielle pour un projet que je dirigeais. J'ai ensuite été invité à présenter une solution lors d'une réunion du Google Developer Group, dont un de mes collègues était l'organisateur.

C'est également chez Nuglif que j'ai découvert Scrum et la méthodologie agile. C'était l'entreprise idéale pour cela, car elle maîtrisait parfaitement toutes les pratiques agiles. En plus de Jira, nous avions même un tableau agile physique ! Ils n'hésitent pas non plus à améliorer leurs processus et cherchent constamment à s'optimiser.

Décembre 2010 – Avril 2016

Lockheed Martin Canada

Développeur logiciel (Java)

Après mes études universitaires, j'ai intégré le monde du travail en tant que développeur C++ et j'avais passé un entretien pour un poste similaire au sein de l'entreprise. L'opportunité d'apprendre Java était également offerte. Quelle ne fut pas ma surprise de découvrir que le code source était entièrement en Java ! Après un moment de panique, je me suis ressaisi et me suis attelé à l'apprentissage de Java. Les débuts furent difficiles, mais j'ai persévéré, et cette expérience s'est révélée cruciale, car elle a nourri ma motivation à devenir un apprenant permanent.

J'ai travaillé sur deux projets distincts au sein de l'entreprise. Le premier concernait le programme de modernisation des frégates de classe Halifax de la Marine royale canadienne et consistait à mettre à jour le système de commandement et de contrôle de ces frégates. Le développement était principalement réalisé en Java, avec la bibliothèque Swing pour l'interface utilisateur et la communication DDS entre les systèmes logiciels.

Une contribution importante que j'ai apportée concerne un script permettant d'automatiser les tests et la surveillance de l'un de nos systèmes. J'étais chargé d'enquêter par rapport à un problème lié à un module qui se produisait parfois après une période quatre heures. Afin de simplifier la configuration, j'ai condensé le processus manuel en plusieurs étapes en une seule commande, ce qui m'a permis de lancer rapidement plusieurs instances de test. J'ai initialement exécuté les tests depuis mon poste de travail, puis j'ai étendu ce processus aux postes inactifs en dehors des heures de bureau. Je retournais au bureau par tranches de quatre heures pour récupérer les résultats et relancer les tests. Une fois les tests terminés, j'ai archivé mon travail d'automatisation avec des instructions pour sa configuration ultérieure. Un an plus tard, mon responsable me félicitait pour l'excellent travail accompli. Quelqu'un avait repris mon script d'automatisation et l'avait développé pour en faire un banc d'essai natif permanent pour plusieurs autres systèmes de combat naval.

Mon deuxième projet concernait l'application de formation simulée visuelle (VISTA). Il s'agissait essentiellement de développer des simulateurs de formation sous forme d'applications de bureau pour aider les techniciens de maintenance à utiliser et à réparer les équipements navals. Cela impliquait des déplacements sur différents sites aux États-Unis afin de documenter et d'enregistrer le comportement des équipements pour pouvoir le recréer dans une application de bureau. Le développement logiciel était également réalisé en Java, et comprenait mes premières expériences avec l'injection de dépendances avec Google GUICE et Spring.

À temps partiel
Décembre 2020 – Octobre 2023

Clearbridge Mobile

Développeur mobile senior (Android)

J'ai travaillé sur l'application YES Networks Sports pour Android TV et sur l'application mobile Purolator. La collaboration s'est déroulée entièrement à distance, ce qui impliquait des échanges directs avec le client pour recueillir ses besoins et lui communiquer les problèmes techniques.

À temps partiel
Juin 2020 – Septembre 2020

Dakia Digital

Chef d'équipe mobile

Je dirige le développement d'une application de médias sociaux et de musique. En plus de mon rôle principal de développeur Android, j'ai été responsable technique pour Android et iOS, j'ai encadré et formé des développeurs juniors, j'ai officié en tant que Scrum Master et j'ai secondé mon responsable en tant que chef de projet.

Entrer en contact

Besoin d'aide pour un projet ? Je peux peut-être vous aider.

Ce champ est obligatoire.
Ce champ est obligatoire.
Ce champ est obligatoire.