Rami Trabelsi

Senior Android Engineer | Kotlin & Jetpack Compose

Salaire / Taux journalier

Paris, France

Freelance

À distance uniquement

Expertises

JavaKotlinAndroidClean ArchitectureGitC++

Langues

AnglaisArabeFrançais

À propos

Introduction

Développeur Android depuis plus de 10 ans (et fier survivant de l’époque Android Jelly Bean, Kitkat et Lollipop 🍭), je me suis spécialisé en Kotlin ces 6 dernières années. J’aime repousser les limites, que ce soit en intégrant Jetpack Compose dès sa première beta ou en développant un design system from scratch qui a révolutionné la cohérence visuelle de nos apps. Mon objectif ? Créer des applications aussi fluides qu’efficaces, avec une touche d’élégance.

Liens

Expérience de travail

Senior Android Engineer

Vestiaire Collective

juil. 2019 - nov. 2024

5 ans 5 mois

Paris, France

Contexte : Vestiaire Collective est une plateforme e-commerce spécialisée dans la mode de luxe de seconde main. J’ai rejoint l’équipe Android il y a 5 ans, contribuant à son évolution jusqu’à devenir une licorne 🦄 et un membre du top 40 de la French Tech. Mon rôle a évolué avec la croissance de l’entreprise, touchant à l’architecture, au développement de fonctionnalités stratégiques, et à la documentation technique. J’ai également aidé à faire croître l’équipe de 4 à 16 ingénieurs, dans un cadre agile structuré en squads et tribus. Responsabilités clés : Débuts chez Vestiaire Collective (Squad Community) : Étant parmi les 4 premiers ingénieurs Android, j’ai participé à définir l’architecture de l’application, en développant la feature “Newsfeed” avec Coroutines, LiveData et MVVM. J’ai documenté les choix techniques pour faciliter les futures évolutions. Architecture & Clean Code : En collaboration avec l’équipe, j’ai contribué à la mise en place d’une architecture robuste respectant les principes SOLID et de la Clean Architecture, intégrant MVVM et UDF avec Kotlin Flows. J’ai veillé au respect de la séparation des responsabilités : UI (View/Jetpack Compose) → ViewModel → UseCase → Repository → Data Source, en utilisant des DTOs pour structurer les données efficacement. J’ai également renforcé la couverture de la codebase avec des tests unitaires. Squad Listing C2C (Projets Clés) : Modernisation des Écrans & Nouvelles Fonctionnalités : J’ai modernisé des écrans clés comme “Seller Progress” et “My Items for Sale,” tout en développant de nouvelles fonctionnalités telles que les badges “Fashion Activist” et “Brand Approved.” J’ai également migré du legacy code de Java vers Kotlin, ce qui a amélioré la qualité du code et facilité les futurs développements. Feature ‘Product Photos Upload’ : Suite à des retours utilisateurs négatifs sur le Play Store, j’ai réalisé une étude et rédigé un RFC pour résoudre les problèmes d’upload de photos. Cela a conduit au développement de 3 nouveaux écrans; incluant un ViewFinder (avec CameraX), une bibliothèque de photos, et un écran principal avec drag’n’drop pour modifier l’ordre des photos pendant ou après l’upload (via gRPC). Transition vers Jetpack Compose & Design System : Leadership sur le Design System : Suite à ma promotion en 2022, j’ai dirigé l’initiative de création d’un Design System from scratch avec Jetpack Compose, en développant une infrastructure robuste sous forme de bibliothèque interne. Ce Design System est devenu un standard pour toutes les nouvelles fonctionnalités, renforçant la cohérence de l’UI de l’app et l’efficacité du développement. (Cf. Building a Design System from scratch - Rami Trabelsi) Mise en place & Accompagnement de l’Équipe : J’ai élaboré une stratégie et encadré l’équipe pour l’adoption de ce Design System à travers des sessions de mob programming, assurant ainsi une transition fluide et une adoption rapide. Transition vers Jetpack Compose : J’ai lead la migration vers Jetpack Compose, conduisant des études de performance et mettant en place un plan d’implémentation qui a été entièrement adopté par l’équipe, optimisant ainsi le développement d’interfaces modernes et performantes. Platform Engineering & Core Mobile Team : Gestion des Releases : J’ai contribué à la transition de releases bimensuelles à hebdomadaires, optimisé le pipeline CI/CD, et maintenu un taux de crash minimal (99,95% crash-free). Monitoring & Performance : J’ai surveillé la performance et la stabilité de l’application avec Datadog, garantissant une scalabilité optimale lors de l’expansion sur de nouveaux marchés. Quality Tools : J’ai engagé des actions d’amélioration continue des outils de qualité pour soutenir de meilleures pratiques de développement et maintenir des standards élevés de qualité de code. Developer Experience : J’ai considérablement amélioré la productivité des développeurs en affinant les outils de développement, en renforçant la structure modulaire du code, et en assurant une compatibilité fluide avec les dernières versions de Kotlin, du Android SDK, de Jetpack Compose et des librairies tierces. Environnement Technique : Kotlin, Modern App Architecture, Modularization, UDF, Jetpack Compose, Material3, Compose Navigation, Coroutines and Flows, Koin, RxJava, Unit Test (Test Doubles), MockK, Bitrise CI/CD, Room, Datadog, CameraX…

Android Developer

- COYOTE -Freelance

oct. 2018 - juil. 2019

10 mois

Région de Paris, France

Contexte : Coyote propose des applications d’assistant de conduite, disponibles à la fois sous forme d’application mobile pour smartphones ou via des boîtiers embarqués à utiliser dans les véhicules. J’ai rejoint Coyote au sein d’une équipe de 10 ingénieurs Android, travaillant dans un environnement agile/scrum, et j’ai contribué à deux projets cruciaux : le lancement du boîtier Coyote UP, et le développement de la fonctionnalité “Try & Buy” pour l’application mobile. Responsabilités clés : Fonctionnalité “Try & Buy” : J’ai été le développeur principal de la fonctionnalité “Try & Buy” avec trois nouveaux écrans, livrée dans les délais et garantissant une expérience utilisateur fluide. Coyote UP : J’ai contribué au développement spécifique de l’application pour le Coyote UP, en optimisant le code pour les capacités matérielles réduites du boîtier, tout en garantissant des performances fluides. Compatibilité avec les appareils anciens : J’ai assuré la compatibilité et les performances de l’application sur des appareils plus anciens, garantissant un support et une fonctionnalité continus. Gestion de Versions & Tests : J’ai suivi de bonnes pratiques de gestion de versions avec Git et assuré une bonne couverture de code avec des tests unitaires, maintenant des standards élevés de qualité du code. Environnement Technique : Java, Kotlin, MVVM, C++, NDK, Git Rebase, Unit Tests, Lottie, Jenkins, Room, Dagger (DI), RxJava, DataBinding, SemVox SDK (Voice interpretation), Gradle flavors, MirrorLink…

Android developer

WyndFreelance

mai 2018 - sept. 2018

5 mois

Région de Paris, France

Contexte : ChapsVision for Unified Commerce (anciennement Wynd) propose des solutions B2B permettant de connecter les magasins physiques aux plateformes digitales pour une expérience d’achat omnicanal fluide. En tant que l’un des 11 ingénieurs Android au sein d’équipes de feature teams, j’ai contribué au développement d’applications Android pour la gestion des points de vente mobiles (POS), le click & collect, et la gestion des stocks, le tout dans un environnement agile/scrum. Environnement Technique : Java, Kotlin, MVP Architecture, Repository Pattern, RxJava, Room, Retrofit, DataBinding, ConstraintLayout, Sonar...

Android Developer

DOCAPOST IOTFreelance

nov. 2017 - juil. 2018

9 mois

Région de Paris, France

Contexte : Chez Docaposte, j’ai fait partie d’une équipe Android de 4 ingénieurs, travaillant dans un environnement agile/scrum sur deux applications principales : Facteo, destinée à la gestion des livraisons postales et des tâches quotidiennes du facteur, et Hub Numérique, pour la gestion de maison connectée. Mes contributions incluaient le développement de fonctionnalités telles que la numérisation de documents, la géolocalisation, la lecture de QR codes, ainsi que l’intégration de la technologie Bluetooth BLE. Environnement Technique : Java, MVP Architecture, Retrofit, Realm (databases), Bluetooth BLE, NFC, ZXing QR, @JavascriptInterface in WebViews...

Android Developer

NiweesFreelance

août 2017 - oct. 2017

3 mois

- Coach a team of junior developers to deliver an MVP of Niwees app. - Reworking the UI of the app. - Putting guidelines to follow on app architecture.

Android Engineer & Team Lead

Satoripop

août 2015 - mai 2017

1 an 10 mois

Sousse, Tunisie

Contexte : En tant que premier ingénieur mobile chez Satoripop, j’ai occupé un double rôle : bâtir et encadrer une équipe de développement mobile, tout en supervisant le développement des APIs et services web. Mon principal projet était de développer Coaching Foot, une application de fantasy football, depuis la conception jusqu’à la mise en production, avec une ambition d’expansion à d’autres ligues. J’ai également contribué à d’autres projets clients, comme Immortality, une app permettant d’enregistrer et consulter les événements de vie sous forme de graphiques… Environnement Technique : Java, MVC, Material, REST APIs, Retrofit, Drag‘n’Drop, Charts, ...

De Stagiaire à Dev Junior

Dot-IT

août 2013 - juil. 2015

2 ans

-

Contexte : Chez Dot IT, j’ai commencé en tant que stagiaire avant de rapidement évoluer vers un rôle de développeur Android junior. Cette agence m’a offert l’opportunité d’apprendre le développement Android et de travailler sur divers projets clients dans des secteurs comme le tourisme, la banque et la santé. En collaborant étroitement avec des développeurs confirmés et seniors, j’ai contribué à la création et à la maintenance d’applications, notamment pour des clients bancaires et des startups comme My Biody Balance. Cette expérience a posé les bases solides de ma carrière en développement Android. Environnement Technique : Java, Google Maps API, REST APIs, Bluetooth LE, NFC. …


Formation

Ecole Nationale d'Ingénieurs de Sousse

Diplôme d'ingénieur, Informatique industrielle

2010 - 2013

3 ans 2 mois

Le meilleur endroit pour trouver votre prochaine opportunité

© 2026. Tous droits réservés.