Tech-Lead / Développeur full stack
mai 2022 - février 2023
Lieu : Paris, Ile de France
Objectif de mission :
Prestation de « leading » technique et développement dans le cadre de l’évolution technique et fonctionnelle de la plateforme d’Europ assistance.
Contexte :
• Le Groupe “Europ-assistance" est un opérateur international de services d’assistance aux personnes dans les domaines de la santé, du domicile et de la vie familiale, de l’automobile, des voyages et de la conciergerie. Il regroupe 44 filiales présentes dans 34 pays.
Afin de mettre en œuvre des assistances, celle-ci propose aux opérateurs de ses filiales une plateforme unifié. Ainsi, elle a un meilleur contrôle, un suivit plus claire et plus simple, une performance accrue et une harmonie globale de ses prestations. Cette plateforme permet :
o La saisie de réclamations : depuis une application web (React / Java) ou des APIs (Java) publiques sécurisé,
o Le déclanchement et le suivit des missions d’assistance : depuis une application web ou des APIs publiques sécurisé,
o La mise en relation avec les fournisseurs de services d’assistance (taxi, dépannage, garages, hôtels, train, avion, …)
• La mise à disposition de données afin d’établir des KPIs via AWS Kinesis
• La section développement est composé de trois équipes autonomes et similaires appelé “Software Factory”, chacune est composé de : 2 POs, 2 Tech-Leads Back, 1 Tech-lead Front, 2 QA, 6 développeurs back et 4 développeurs front.
• Gestion du projet en mode « Agile » / « Scrum » avec les différents rituels associés : Daily-Meeting, Grooming, Sprint planning, Sprint review, …
• Le projet est constitué de trois applications : deux « back » et une « front » :
o L’application front est basée sur le Framework « React ».
o Les applications « back » sont construites avec des technologies au tour de Java :
o Un gros monolithe modulaire suivant une architecture Hexagonale. Celui-ci implémente le cœur du métier et expose des API pour le Front.
o Une application servant à faire de l’« EAI » et ainsi gérer l’interaction avec les applications tierces.
Tâches réalisées :
Leading technique
• Participation aux choix techniques et d’architecture lors de comités entre Tech-Leads/Solution Owner.
• Conception de solutions techniques répondants aux nouveaux besoins techniques et fonctionnels,
• Participation à des ateliers de “deep-dive" avec les « end-users » afin d’étudier la faisabilité des nouveaux besoins,
• Participation à des ateliers avec les POs afin de donner une “macro-estimation” et de transformer les “user stories“ en spécifications fonctionnelles/techniques détaillés et compréhensible par les équipes de développement,
• Animation de réunion de présentation avec les « end-users » : “Demos”,
• Développement de modules pilotes et de PoC. Mais aussi, développements difficile, délicat et critique,
• Retro-engineering et rédaction de document technique d’architecture à des fins de formation et/ou d’amélioration de l’existant,
• Suivit des développements et coordination avec les autres équipes de développement,
• Paquetage et mise à disposition de « releases » via Jenkins, Spinnaker, AWS,
• Coordination entre les équipes dont les développements sont dépendants :
o Analyse, mesure et prévention des impacts des développements inter-équipes,
o Garantir la bonne constitution des contrats d’interface et leur respect,
o Etablir une chaine de dépendance entre les développements et ainsi un ordre de développement.
• Encadrement des DEVs :
o Revue de code via BitBucket,
o Transmettre les bonnes pratiques et les méthodologies de développement : TDD, SOLID, DRY, KISS, GitFlow, …
o Formations, apprentissage, aide ponctuelle, conseil, …
• Support au testing et à l’exploitation des « features » développées,
• Team building.
Développement
Back-end
• Développement d’APIs (publics et privées) permettant la gestion, le suivit et l’analyse des missions d’assistance. Utilisation de « Spring Core », « Spring Security », « Spring Web » & « Spring Data JPA ».
• Développement d’API utilisant les technologie SSE, Amazon SNS et Amazon SQS afin de permettre un suivit en temps-réel de l’évolution des missions,
• Développement de Batchs avec « Spring batch », notamment pour mettre à jour automatiquement les données de certaines missions en fonction de critères précis.
• Upgrade de version des différents Framework utilisé afin d’eviter l’obsoléscence technologiques et réduire les vulnérabilités.
• Upgrade de la version BD PostgreSQL 9.X à 14.X,
• Augmentation de la couverture en TU et surtout en TI en supprimant des « mocks » inutiles et nuisible.
• Refonte d’une partie du modèle de données ainsi que l’applicatif correspondant :
o Missioning,
o Mission Event,
o Ecrite de script SQL performant dans un contexte d’une large migration de donnée (plus de 80M de lignes)
Environment Technique : IntelliJ 2023, Webstorm 2023, Jira suite : Jira / Bitbucket, Oracle APIyari, Jenkins, Spinnaker, Java 11, Spring Core 5, Spring web 5, Spring Batch 4.x, Spring boot 2.x, Spring Data JPA 2.X, JUnit 5, Wiremock 2.x, AWS SNS/SQS, AWS S3.