Projet client · Marketplace · Symfony
Delcampe Marketplace Platform
Contribution à la maintenance, à l’évolution et à la qualité technique d’une plateforme marketplace internationale dédiée aux collectionneurs.
Expérience associée
Blubird
Développeur PHP backend / consultant · 2018 — 2019
Voir l’expérience correspondanteContexte du projet
Delcampe est une marketplace en ligne dédiée aux objets de collection tels que les timbres, les cartes postales, les monnaies et d’autres objets destinés aux collectionneurs.
La plateforme met en relation des vendeurs et des acheteurs à l’échelle mondiale et gère les annonces, les transactions, la messagerie et les interactions entre utilisateurs.
En complément de la marketplace web, Delcampe fournit également une application desktop utilisée par des vendeurs professionnels.
Cette application se connecte à la plateforme via un mélange d’APIs REST et SOAP afin de synchroniser les données de la marketplace.
J’ai rejoint l’équipe de développement comme consultant via Blubird et contribué à la maintenance et à l’évolution de la plateforme marketplace principale.
Objectifs du projet
- Maintenir et améliorer la plateforme marketplace principale
- Corriger les bugs et assurer la stabilité du système
- Améliorer des fonctionnalités et pages existantes
- Contribuer au développement de nouvelles fonctionnalités
- Maintenir un haut niveau de qualité de code dans une large base de code utilisée en production
Architecture du système
La plateforme était construite comme une application monolithique modulaire basée sur le framework Symfony.
Le système incluait plusieurs composants interconnectés : la plateforme web marketplace, les APIs utilisées par des services internes et par le client desktop, une interface utilisateur internationalisée et des services internes soutenant les opérations de la marketplace.
Mon rôle
J’étais développeur backend intégré à l’équipe principale de développement.
Au cours de la mission, j’ai travaillé sur différentes parties du système en fonction des priorités.
- Correction de bugs affectant la plateforme marketplace
- Implémentation d’améliorations sur des pages et composants existants
- Participation au développement de nouvelles fonctionnalités
- Collaboration avec les développeurs frontend lorsque les fonctionnalités nécessitaient un travail backend et frontend
- Contribution aux code reviews et aux discussions techniques
Structure d’équipe
Le département logiciel était organisé en deux équipes collaborant étroitement.
Cette structure aidait à maintenir un alignement fort entre les décisions produit et l’implémentation technique.
Équipe produit
- Product lead
- Senior product expert
- Rôle innovation / stratégie produit
- Deux développeurs frontend
Équipe de développement
- Lead developer
- Technical lead
- Deux développeurs internes
- Trois consultants Blubird, dont moi-même
- Trois développeurs freelance
Pratiques de développement
L’équipe suivait un workflow Agile inspiré des pratiques Scrum.
Le processus de développement incluait également des branches dédiées pour chaque correction de bug ou fonctionnalité, des code reviews systématiques avant merge et des branches de release contrôlées pour les déploiements en production.
Ce workflow contribuait à assurer la stabilité et la maintenabilité de la plateforme de production.
- Cycles de sprint planning de deux à trois semaines
- Daily stand-up meetings
- Poker planning pour l’estimation des tâches
- Rétrospectives de sprint
- Discussions de conception technique pour les fonctionnalités complexes
- Feature branches pour chaque bug fix ou fonctionnalité
- Code reviews systématiques avant merge
- Branches de release contrôlées pour les déploiements en production
Technologies utilisées
Backend
- PHP 7 avec programmation orientée objet et principes SOLID
- Symfony 3.1
- MariaDB
APIs
- REST APIs
- Services SOAP utilisés par l’application desktop
Frontend tooling
- JavaScript
- Gulp
- NPM
- Bower
Tests
- PHPUnit pour les tests unitaires backend
- Jasmine pour les tests JavaScript
- CasperJS pour les tests automatisés orientés navigateur
Monitoring
- Sentry pour le monitoring des erreurs applicatives
Version control & CI/CD
- Git hébergé sur GitLab interne
- Branches dédiées par bug ou fonctionnalité
- Code reviews obligatoires
- Pipelines GitLab CI/CD
- Exécution des tests automatisés avant les releases
Containerisation
- Docker utilisé dans l’environnement CI/CD
Gestion de projet & documentation
- Jira pour la gestion des tickets
- Confluence pour la documentation et le partage de connaissances
Infrastructure
- Hébergement et gestion d’infrastructure assurés en interne par l’entreprise
Défis techniques
Travailler sur une marketplace mature
Le projet impliquait de contribuer à un système de production large et existant depuis longtemps, utilisé par une communauté internationale d’utilisateurs.
Comprendre l’architecture et naviguer dans la base de code existante nécessitait une collaboration avec des membres expérimentés de l’équipe.
Standards élevés de qualité de code
L’équipe de développement maintenait de fortes attentes concernant la structure du code, les tests, les workflows de développement et les processus de review.
Plateforme multilingue
La marketplace supportait plusieurs langues et des utilisateurs internationaux, ce qui augmentait la complexité applicative.
Écosystème connecté
La plateforme web était reliée à des APIs et à une application desktop utilisée par des vendeurs professionnels, ce qui demandait une attention particulière à la compatibilité et à la stabilité des échanges.
Résultats / impact
Mon travail a contribué à maintenir et améliorer la stabilité et la qualité de la plateforme marketplace Delcampe.
À travers la correction de bugs, les améliorations incrémentales et le développement de fonctionnalités, l’équipe a continué à faire évoluer la plateforme tout en maintenant sa fiabilité pour une large base d’utilisateurs.
Apprentissages personnels
Cette mission a été l’une des expériences les plus formatrices du début de ma carrière.
Elle m’a permis de découvrir un environnement de développement bien structuré, de voir l’impact concret de workflows Agile et inspirés de Scrum, de travailler dans une large application Symfony en production, de comprendre l’importance des tests automatisés dans les projets long terme et d’expérimenter l’effet positif d’une équipe de développement saine et collaborative.