About Jérémy
Spanish
Basic
English
Fluent
French
Native or bilingual
Experience
- RATPDéveloppeur Back JavaTRANSPORTATIONMarch 2024 - Today (2 years and 3 months)Mérignac, FranceProjet de gestion de flux métier pour le traitement de données commerciales et techniquesAu sein d’une équipe agile d’une quinzaine de personnes dont 7 développeurs, j’ai travaillé surune architecture hexagonale avec mise en place de traitements backend avancés sousQuarkus, intégration native et forte sécurisation des flux :Composants :- Backend (REST API, modules techniques et fonctionnels)- Traitement de données (conversion, validation, transformation)Tâches réalisées :- Backend Quarkus (Java 17) :- Mise en place d’une exécution native via GraalVM et Docker, configuration complèteavec resource-config.json / reflection-config.json- Sécurisation SSL/TLS avec truststore custom, généré via keytool et injecté via variablesd’environnement- Gestion de fichiers (MinIO et Amazon S3)- Appels GraphQL- Mise en place d’une base de données PostgreSQL- Intégration de bibliothèques externes- Traitements de flux :- Lecture et mapping de fichiers CSV/JSON via Apache Commons CSV et Jackson- Utilisation de Flyway pour la gestion des migrations de schéma- MapStruct pour le mapping DTO/Entity- Validation des payloads via annotations Jakarta JSON/POJO- Mise à jour de DCT avec transformation des flux- Connexion SFTP :- Utilisation des librairies JSch et SSHJ pour la connexion sécurisée et les transferts defichiers via SSH/SFTP- Tests automatisés :- Tests d’intégration avec TestContainers (lancement d’image Docker minio)- Tests avec @SpringBootTest, @QuarkusTest et @WebMvcTest- Tests unitaires JUnit 5- Surveillance & Sécurité :- Suivi applicatif avec Datadog et log4j2- Intégration de OWASP Dependency Check dans GitLab CI- Outils & bonnes pratiques :- GitLab CI avec intégration continue- Méthodologie agile, revues de code, et documentation systématique- Application des principes clean code, relecture rigoureuse et couverture de testsélevée (>= 80%)
- TotalEnergiesDéveloppeur Back Java - Full RemoteENERGY AND UTILITIESNovember 2022 - March 2024 (1 year and 5 months)Projet de calcul de KPI/RQI (index de qualité de réservoir de pétrole/gaz) (Full-Remote)Au sein d’une équipe agile de 7 personnes dont 5 développeurs, j’ai réalisé :Composants :- Frontend- Backend (Application de 5 modules avec contrôleurs REST)- Engine (Application déportée de 10 modules)Tâches réalisées sur Backend et Engine :- Backend :- Implémentation d'endpoints REST (GET/POST/DELETE) avec :- Appels à Azure Functions pour interactions avec Engine- Appels à DAGs Apache vers Engine- Gestion de fichiers via Azure Blob Storage (upload/download)- Opérations CRUD avec MongoDB et Spring Data JPA- Développement de tests unitaires et d’intégration :- Tests d'intégration sur Azure Blob Storage en utilisant TestContainers- Simulation d’Azure Functions avec WireMock- Tests exhaustifs des contrôleurs REST, incluant la vérification des mises à jour en BDDEngine :- Développement de services pour le traitement de fichiers EPC/H5 (représentant une grille/réservoir pétrolier en 3D)- Analyse et calcul de KPIs- Implémentation de règles fonctionnelles diverses- Intégration de la librairie « fesapi » pour la lecture et l'écriture de fichiers EPC/H5- Développement de tests unitaires et d'intégrationConfiguration Maven pour couverture de code avec JaCoCo et Surefire, intégration avec SonarQubeClean code :- Mise en place de tests unitaires/intégration- Pull Requests GitHub systématiques (clean code)- “Rebase” réguliers pour rester à jour de l’avancée du code de l’équipe- Fréquentes montées de version des librairies- Vérification du respect des règles SonarQubeCréation “From Scratch” d’une application multi-modules Spring Boot 3.1Apport de mon expertise à l’ensemble de l’équipe essentiellement dans la manière de :- Couvrir le code / rédiger les tests- Lutter contre les régressions- Coder le plus proprement possible, refacto, simplification, nommage des variables/méthodes dans le plus pur respect des standards- Faire prendre conscience de la nécessité de :maintenir une branche “main” stable- Bien tester son code manuellement et automatiquementMise en place de :- GitHub Action pour déclenchement auto d’analyse SonarQube- GitHub Action pour déclenchement manuel de versionnement et déploiement (tag + release) automatique (Maven, GitHub Actions/App)- Azure Blob Storage pour le stockage de données dans le cloud (+ TU/TI)- Azure Functions (avec authentification OAuth2)- Apache Airflow (avec authentification OAuth2)
- Pôle emploiDéveloppeur back-endPUBLIC SECTORMarch 2021 - November 2022 (1 year and 8 months)Gradignan, FranceVolumétrie d’appel de l’application : 40 appels/seconde soit 1 million d’appels/jourAu 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 SonarQubeexemple : 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)Environnement :FRONT- ThymeleafBACK- Architecture en microservices- Version de Java : JDK 17 Oracle LTS- Utilisation interfaces fonctionnelles : Consumer/Supplier/Function- Spring Boot- Spring Boot Actuator- Spring Cloud Config Server- Spring Cloud OpenFeign- Spring Cloud Gateway- Spring WebFlux (programmation réactive)- Spring Data JPA- Spring Security- Mapping de données via MapStruct- Lombok- PostmanBDD- SGBD : Mongo, PostgreSQL, Redis, Oracle, DB2TESTS- 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 TDDDEVOPS- 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 cloudSUPERVISION-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 productionOUTILS AGILITE- Jira- Confluence- Microsoft Teams- MattermostSECURITE- SonarQube (Security Hotspots, Security Vulnerabilities, Top Ten Owasp)- Vault- Spring Cloud Config Server
Recommendations
These freelancer profiles also match your criteria
Agatha Frydrych
Backend Java Software Engineer
4.7
(3)
2
Baptiste Duhen
Fullstack developer
4.6
(4)
5
Amed Hamou
Senior Lead Developer
4
(2)
7
Audrey Champion
Web developer
4.3
(3)
4
Education
- Baccalauréat S (mention)Lycée Victor Louis (Talence)2004
- DUT Informatique (Génie logiciel et système d’informations)Bordeaux 12006