Développeur(euse) mobile senior : Kotlin Multiplatform et Android
Sidekick Interactive · Montreal, Quebec, Canada
Apply & track with Apply EdgeDéveloppeur(euse) mobile senior : Kotlin Multiplatform et AndroidSidekick Interactive · Montréal (hybride) ou à distance au Canada · Contrat de 3 mois renouvelableL'occasionNotre client est une entreprise canadienne de logiciels de cartographie. Sa plateforme en marque blanche fait tourner une trentaine d'applications grand public pour des fédérations de quad et de motoneige au Canada et aux États-Unis. Les adeptes comptent sur elles pour naviguer dans les sentiers, suivre leur trajet par GPS et consulter des cartes hors ligne. La plupart de ces applications ont des abonnés payants.L'équipe fait passer toute la plateforme à une nouvelle architecture : un cœur unique en Kotlin Multiplatform, avec des écrans MVVM modernes et minces sur Android et iOS. Une fonctionnalité ajoutée au cœur partagé arrive dans les 30 applications, sur les deux plateformes. Vous aiderez à bâtir cette architecture, puis vous l'utiliserez pour livrer de nouvelles fonctionnalités.Ce que vous ferez
- Refactoriser le cœur Java historique vers une architecture Kotlin Multiplatform propre, module par module, avec le filet d'une suite d'environ 6 000 tests existants.
- Concevoir et développer de nouvelles fonctionnalités sur le cœur partagé, et les livrer aux utilisateurs Android et iOS.
- Reconstruire les écrans Android en vues MVVM sur des modèles de vue partagés, avec des tests par captures d'écran pour valider chaque changement.
- Fusionner les fonctionnalités codées deux fois (Android et iOS) en une seule implémentation partagée, et corriger au passage les bogues cachés dans leurs écarts.
- Travailler au quotidien avec des outils de codage IA (Claude Code), avec une revue de code qui garde la barre de qualité haute.
- Proposer des améliorations à l'architecture, aux outils de l'équipe et au produit lui-même. L'équipe veut votre avis et met en œuvre les bonnes idées.Votre profil
- Vous prenez des initiatives. Vous repérez ce qui ralentit l'équipe ou ce qui manque aux utilisateurs, et vous arrivez avec une proposition.
- Vous aimez partager vos idées et les défendre avec des arguments, et vous changez d'avis quand les faits vous donnent tort.
- Le produit vous intéresse autant que le code.Ce que vous apportez
- 5 ans et plus de développement Android en Kotlin, avec au moins une application en production que vous pouvez nous présenter
- Une expérience concrète de Kotlin Multiplatform en production : expect/actual, source sets, builds Gradle KTS multimodules
- Une solide expérience en architecture mobile : MVVM, coroutines, Flow, injection de dépendances
- La capacité de lire et refactoriser du Java, y compris du vieux code sans tests
- Le réflexe de tester : JUnit, tests de caractérisation, aisance dans une grande suite de tests existante
- Assez d'iOS pour déboguer ce que KMP produit pour Xcode, avec des bases en Swift et en interopérabilité Objective-C
- De l'expérience avec les assistants de codage IA, et un regard critique sur ce qu'ils produisentAtouts
- Applications de géolocalisation, de GPS ou de cartographie (tuiles hors ligne, suivi en arrière-plan, contraintes de batterie)
- Compose Multiplatform
- Expérience avec J2ObjC ou une autre chaîne de traduction Java vers iOS
- Configurations multimarques ou multisaveurs
- Anglais fonctionnel (l'équipe du client travaille en français et en anglais)Pourquoi nous rejoindre
- Du vrai travail d'architecture : vous contribuez à définir la conception cible.
- De nouvelles fonctionnalités à livrer en parallèle de la refonte.
- Une petite équipe où les bonnes propositions sont adoptées vite.
- Un produit utilisé dehors, chaque fin de semaine, partout en Amérique du Nord.
- Un contrat de 3 mois renouvelable avec une agence montréalaise qui développe des applications mobiles depuis 2011.ENGLISH VERSIONSenior Mobile Developer: Kotlin Multiplatform & AndroidSidekick Interactive · Montréal (hybrid) or remote in Canada · 3-month contract, renewableThe opportunityOur client is a Canadian mapping software company. Its white-label platform powers about 30 consumer apps for ATV and snowmobile federations across Canada and the US. Riders count on them for trail navigation, GPS tracking and offline maps, and most of the apps have paying subscribers.The team is moving the whole platform to a new architecture: one shared Kotlin Multiplatform core, with thin, modern MVVM screens on Android and iOS. A feature added to the shared core reaches all 30 apps on both platforms. You'll help build that architecture, then use it to ship new features.What you'll do
- Refactor the legacy Java core into a clean Kotlin Multiplatform architecture, one module at a time, backed by an existing suite of about 6,000 tests.
- Design and build new product features on the shared core, and ship them to riders on Android and iOS.
- Rebuild Android screens as MVVM views on shared view models, with screenshot tests guarding each change.
- Merge features that exist twice (Android and iOS) into one shared implementation, and fix the bugs hiding in the gaps between them.
- Work with AI coding tools (Claude Code) every day, with code review keeping the quality bar high.
- Propose improvements to the architecture, the team's tooling and the product itself. The team wants your opinion and acts on the good ideas.Who you are
- You take initiative. You spot what slows the team down or what riders are missing, and you show up with a proposal.
- You like sharing ideas and backing them with arguments, and you change your mind when the facts say you're wrong.
- You care about the product as much as the code.What you bring
- 5+ years of Android in Kotlin, with at least one production app you can walk us through
- Hands-on Kotlin Multiplatform in production: expect/actual, source sets, Gradle KTS multi-module builds
- Strong mobile architecture skills: MVVM, coroutines, Flow, dependency injection
- Java you can read and refactor, including older code with no tests
- A testing habit: JUnit, characterization tests, comfort working inside a large existing suite
- Enough iOS to debug what KMP produces for Xcode, with basic Swift and Objective-C interop
- Experience with AI coding assistants, and a critical eye on what they produceNice to have
- Location, GPS or mapping apps (offline tiles, background tracking, battery constraints)
- Compose Multiplatform
- Experience with J2ObjC or similar Java-to-iOS toolchains
- White-label or multi-flavor build setups
- French (the client team works in French and English)Why join
- Real architecture work: you help define the target design.
- New features to ship alongside the refactor.
- A small team where good proposals get adopted fast.
- A product people use outdoors every weekend across North America.
- A renewable 3-month contract with a Montreal agency that has built mobile apps since 2011.