EXPERIENCES PROFESSIONNELLES
Mars 2021 à aujourd’hui : Pôle Emploi – Développeur back
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)
Environnements techniques
FRONT
● Thymeleaf
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
Août 2020 à Février 2021 : BNP Paribas PF – Développeur full stack
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
Environnements techniques
FRONT
● Angular 8
● Material Design
● Table (données, filtre, tri, pagination), liste en scroll infini
● WS REST (Observable RxJs)
BACK
● Java 8
● Spring Boot 2, Cache, Data, Security, Cron
● Maven
● Tests unitaires Mock JUnit
● Swagger Generator
BDD
● Elasticsearch + PostgreSQL
Outils
● IntelliJ Ultimate
● Docker (images PostgreSQL et Elasticsearch)
● JHipster : génération table, entity, repository, controller, service, test + gestion historique via
Liquibase
● Postman
● Microsoft Teams
● Intégration continue : Jenkins, Sonar, GitLab
Juillet 2019 à Juin 2020 : Orange DSI – Développeur full stack
Projet Scrum : SHINE 2 - Mise en relation d’entreprises partenaires avec des clients à travers
l'application SHINE 2 d’Orange (plateforme type Marketplace)
Au sein d'une équipe de 15 personnes, j’ai réalisé :
● Analyse et correction d’anomalies
● Rédaction de documentation
● Participation aux cérémonies agiles : Sprint planning, grooming, daily, démo, rétrospective
● Chiffrage, analyse et développement des user stories back-end et front-end
● Réalisation de tests unitaires et d’intégration
● Support technique et revue de code
Environnements techniques
● Java - JEE, Spring (IOC, AOP, Data JPA, Cloud, Boot)
● Framework Hibernate
● Base de données : MariaDB
● API REST
● Swagger generator (génération de code API serveur via document OpenAPI JSON/YAML)
● Environnement microservices
● Feign : client HTTP qui facilite l'appel des API exposées par d’autres microservices
● Java SE 8
o Interface fonctionnelle : (Consumer, Supplier, Callable)
o Lambda (groupement, sort, map, filter...)
o Lancement de threads via Framework Executor
o MapStruct : générateur de code qui simplifie l’implémentation du mapping d’objets
● Gestion de configuration : GIT
● Cycle de vie : Maven
● Test : JUnit (unitaire), Cucumber (intégration)
● Angular 5.2.0
o Mise en place de formulaires, composants, services, modules, routing
o Mise en place d’Observables (RxJS)
o Tests via test runner Karma et framework Jasmine
Outils
● PaaS (plateforme en tant que service) Open Source : Cloud Foundry
● Intégration continue : GitLab CI, SonarQube
● Suivi des tickets : Jira
● IDE : IntelliJ, Visual Studio Code
● création de jobs pour extraction/modification de données : Talend (Extract Transform
Load)
● Application pour gestion SGBD : phpMyAdmin, HeidiSQL
● Consultation de logs : Kibana
● WS REST : développement/test via Postman
Octobre 2018 à Juin 2019 : Orange OLS – Développeur Node.js
Projet Kanban : OIDC – Application d’authentification multi-protocoles
● Modernisation du code source (ex : remplacement des callbacks par des promises, des
prototypes par des classes via ECMAScript 6, utilisation des plugins ESLint et Prettier dans
IntelliJ), mise en place d’un Swagger
● Modification de l’architecture du projet en profondeur pour le rendre compatible multiprotocoles
● Mise en place de tests via nodeunit/MochaJS
● WS REST (développement via Postman)
● Base de données : MongoDB
● Corrections/Évolutions
● Intégration continue : Jenkins, SonarQube
Environnements techniques
Node.js, Express.js, ECMAScript 6, IntelliJ, Swagger, Git, Jenkins, MongoDB, MochaJs, nodeunit, WS
REST avec Postman
Mars 2017 à Octobre 2018 : Bordeaux Métropole Énergies –
Développeur full stack
Projet Scrum : Applications de facturation/compte client
● Développements de nouveaux écrans + correctifs.
Travaux réalisés sur Front et Back
● Front : Struts 2, JSP, jQuery, JavaScript, HTML5, CSS3, Bootstrap, Flexbox
● Back : Java 8, Spring Data, Tomcat 7, WS REST (développement via Postman)
● Travaux de migration : Toplink vers Spring Data / Java 6 vers Java 8
● Merges hebdomadaires
● Intégration continue : Jenkins, SonarQube
Environnements techniques
Java 8, Maven, TU, Mockito, TI, Jenkins, Sonar, SVN + TortoiseSVN, Eclipse Oxygen, Struts 2, JSP,
jQuery, JavaScript, HTML5, CSS3, Bootstrap, Flexbox, WS REST avec Postman
Octobre 2016 à Mars 2017 : Lectra – Développeur full stack
Projet Scrum : Application de gestion des collections de vêtements
● Au sein d’une équipe de 8 personnes
● Reproduction de bugs et maintenance corrective, débogage d’applications
● Travaux d’évolution sur l’architecture applicative déjà en place sur les aspects front (ExtJS,
ReactJS) et back (Java 8)
● Mise en place de l’environnement de développement
● Serveur (WildFly 8, Node.js)
● Grosse composante de rédaction + passage tests unitaires + tests d'intégration via
framework TestNG + Mockito (répartition temps de développement : 30%
implémentations/70 % tests)
● Rédaction de tests Selenium
● Gestion de configuration : SVN via SmartSVN / GIT via GitLab
● Travail collaboratif avec d’autres équipes et services
● BDD : mapping objet-relationnel Hibernate / Consultation BDD via SQL Developer
● Intégration continue : Jenkins, SonarQube
Environnements techniques
Java 8, Hibernate, GIT, SVN, TestNG, Mockito, Selenium
Mai 2016 à Octobre 2016 : Ixxi Techside – Responsable Back
Projet Scrum : Application Android/iOS de recherche d’itinéraires (Bus, Tram, RER, Train, Vélo,
Piéton)
● Évolutions / Corrections anomalies / déploiements /livraisons en Dev, Re...