
2022 → 2023 · Télétravail complet
Leetchi
Lead Dev .NET, équipe Admin (freelance)
N° 1 européen de la cagnotte en ligne · 20 M+ d’utilisateurs · groupe Mangopay (Crédit Mutuel Arkéa)
LignesBackend .NETLeadershipCloud
Faits marquants
- Arrivé en freelance comme développeur senior, a été nommé Lead Dev de l’équipe Admin trois semaines plus tard : huit personnes, PO compris, chargées des API et des interfaces d’administration des cagnottes.
- A contribué à la refonte complète de Leetchi, repensée de zéro (domaines DDD, microservices, API, parcours utilisateurs, ergonomie) et mise en production en 9 mois sans aucun incident, ni sur les performances, ni sur l’expérience utilisateur, ni sur la migration des données.
- A découpé et chiffré le périmètre de son équipe, puis challengé le CTO sur les fonctionnalités à déprioriser pour tenir le budget, comme la dépense de la cagnotte chez des marchands partenaires.
- A reconstruit les outils de screening, de connaissance client (KYC), de lutte contre la fraude et contre le blanchiment d’argent, et sécurisé l’accès à l’interface d’administration via l’Active Directory de l’entreprise.
Je suis arrivé chez Leetchi en freelance, comme développeur senior, au moment où l’entreprise jouait sa dernière carte : refaire entièrement la plateforme en interne, avec un budget précis et 9 mois pour y parvenir.
Un système de paiement devenu Mangopay
À ses débuts, Leetchi avait construit son propre système de paiement pour gérer l’argent des cagnottes, directement intégré au site. Au fil des années, ce système a grossi jusqu’à devenir Mangopay, une solution commercialisée à part, en concurrence avec Stripe ou Lemonway.
Le revers de ce succès, c’est que le code historique de Leetchi était complètement imbriqué avec celui de Mangopay. Chaque évolution de Mangopay obligeait le site à suivre, encore et encore.
Deux tentatives, puis un dernier budget
L’entreprise a d’abord confié la restructuration de Leetchi à une société de service, pour intégrer Mangopay proprement. Le résultat n’était pas satisfaisant. Un deuxième budget a été débloqué pour recommencer, sans plus de succès.
Les investisseurs ont alors alloué un dernier budget, très précis. Cette fois, la refonte ne serait pas confiée à un tiers : elle serait menée en interne, avec des équipes de développement renforcées par des freelances.
Lead Dev trois semaines après mon arrivée
Pour que tous ces nouveaux développeurs travaillent efficacement ensemble, le CTO a créé deux équipes :
- l’équipe Admin, chargée des API et des interfaces d’administration des cagnottes : screening, KYC, lutte contre la fraude et contre le blanchiment d’argent
- l’équipe Front, chargée elle aussi des API (partagées entre les deux équipes) et de l’application web publique.
Le CTO m’a demandé de prendre la tête de l’équipe Admin. Trois semaines après mon arrivée, je suis devenu Lead Dev d’une équipe de huit personnes, PO compris.
Tenir les 9 mois
Avec un budget aussi serré, chaque fonctionnalité devait mériter sa place. J’ai découpé à grande maille les travaux à venir, je les ai chiffrés, puis j’ai challengé le CTO sur ce qu’il fallait déprioriser pour atteindre l’objectif.
Un exemple parmi d’autres : nous avons décidé de ne pas réintégrer la possibilité de dépenser sa cagnotte chez des marchands partenaires. Elle ne concernait que quelques pourcents des utilisateurs, pour un coût de développement énorme. Le ratio coût/gain ne tenait pas.
J’ai aussi travaillé sur la sécurisation de l’accès à l’interface d’administration, en l’appuyant sur l’Active Directory de l’entreprise.
Tout repenser de zéro
Rien n’a été repris tel quel. Les domaines ont été redéfinis en DDD, avec CQRS, et tout a été repensé : les microservices, les API, les cas d’usage des utilisateurs et l’ergonomie. Le backend reposait sur .NET Core, Entity Framework, Dapper et SQL Server, avec MassTransit pour la communication entre services, et les interfaces étaient écrites en Vue.js.
La qualité était suivie en continu avec NUnit, SonarQube et Stryker pour les tests de mutation. L’infrastructure était décrite avec Terraform et déployée sur Azure via Azure DevOps, et nous travaillions en Scrum.
Une mise en production sans accroc
Neuf mois plus tard, le nouveau Leetchi était en production. Aucun problème n’est apparu, ni sur les performances, ni sur l’expérience utilisateur, ni sur la migration des données. Après deux tentatives manquées, la refonte a été une très grande réussite.
Environnement technique
- .NET Core
- C#
- DDD
- CQRS
- Entity Framework
- Dapper
- SQL Server
- MassTransit
- Vue.js
- NUnit
- SonarQube
- Stryker
- Azure
- Azure DevOps
- Terraform
- Scrum