Projet de gestion des demandeurs d’emploi (Gradignan)
Volumétrie d’appel de l’application : 40 appels/seconde soit 1 million d’appels/jour
Au sein d’une équipe agile de 7 personnes dont 4 développeurs, j’ai réalisé en pair-programming
systématique (points positifs => échange de points de vue/apprentissage mutuel) :
● Migration Java 8 => Java 17 et Spring Boot 2.6.3
● Mise en place d’une Gateway via Spring Cloud Gateway
● Initialisation de microservices en programmation réactive (Spring WebFlux)
● Mise en place générateur de code Client/Serveur avec “Open Api Specification” +
Swagger 3
● Développement IHM via Thymeleaf
● Mise en place résilience via coupes-circuits (Resilience4j)
● Mise en place Feature flipping (FF4J)
● Mise en place d’un Cron (Spring)
● Comparaison de trames XML (XMLUnit)
● Génération de code Java à partir de fichiers XSD (JAXB Generator)
● Utilisation de moteur de template (MustacheJS/EJS)
● Mise en place de tests de performance (Gatling/K6)
● Mise en place de tests d’API automatisés (Karate)
● Mise en place de tests unitaires/intégration
● Mise en place de tests d’architecture (ArchUnit)
● Montées de version fréquentes des librairies pour éviter les « Security Hotspots » détectés
par SonarQube
● Correction du code pour éviter les « Security Vulnerabilities » détectés par SonarQube
● Détection/Correction des « Top Ten Owasp » via SonarQube
o exemple : CSRF (exécution de requêtes à l’insu d’un utilisateur connecté), API non
sécurisées, Failles XSS, Injections SQL)
● Mise en place d’un « Vault » pour stocker les URL, identifiants et mots de passe de manière
sécurisée
● Mise en place d’un « Spring Cloud Config Server » pour récupérer les données du « Vault »
pour les incorporer dans des fichiers de propriétés d’applications inhérents à chaque
environnement
● Supervision de production (Kibana, AppDynamics, Grafana)
Projet BNP Automobile : ESIV - Service d’immatriculation des véhicules (Mérignac)
Au sein d’une équipe d’une dizaine de personnes j’ai réalisé :
● Mise en place de nouveaux écrans avec appels de service REST (75 %)
● Création WS BACK pour requêter les données en base Elasticsearch et Postgres (25 %)
En fil rouge au quotidien : soutien/aide/formation/encadrement junior
BACK
● Architecture en microservices
● Version de Java : JDK 17 Oracle LTS
● Utilisation interfaces fonctionnelles : Consumer/Supplier/Function
● Spring Boot 2.6
● Spring Boot Actuator
● Spring Cloud Gateway
● Spring WebFlux (programmation réactive)
● Spring Data JPA
● Spring Security
● Spring Cloud Config Server
● Mapping de données via MapStruct
● Lombok
● Postman
BDD
● SGBD : Mongo, PostgreSQL, Redis, Oracle, DB2
TESTS
● TU avec Junit 5, AssertJ, Mockito
● TI avec WireMock (mock des API externes), base H2
● Tests d’architecture avec ArchUnit
● Karate (pour tests d’API automatisés)
● Gatling/K6
● Méthodologie TDD
DEVOPS
● Hébergement Cloud Foundry PaaS (Platform-as-a-Service)
● GitLab (utilisation du Gitflow)
● Docker
● JFrog : gestionnaire de dépôts binaires
● Concourse (CI/CD avec utilisation de fichiers YAML avec utilisation de YTT « Yaml
Templating Tool »)
● Amazon S3 : Stockage de données en ligne dans le cloud
SUPERVISION-ALERTING-LOG
● Kibana : exploration, visualisation des logs
● Grafana : visualisation de données sous forme de graphiques
● Canopsis : centralisation des évènements + propagation et alertes
● AppDynamics : Observabilité en temps réel des interactions applicatives sur les différents
environnements jusqu’à celui de production
OUTILS AGILITE
● Jira
● Confluence
● Microsoft Teams
● Mattermost
SECURITE
● SonarQube (Security Hotspots, Security Vulnerabilities, Top Ten Owasp)
● Vault
● Spring Cloud Config Server