Expérience professionnelle
Janvier 2023 – Présent
Mission chez L’ORÉAL, Référent Java.
Conception, Réalisation et Évolution du Système d’Intégration de Données (HIP).
Détails du projet: L’équipe HIP offre une plateforme d’intégration de flux de données.
Cette plateforme consiste en un ensemble de microservices Java (Spring Boot) déployés dans des
clusters Kubernetes
{ Design et implémentation de modules de traitement de flux.
{ Refactoring et migration de code TIBCO vers Java.
{ Optimisation des performances et design technique.
{ Résolution de problèmes liés à la mémoire et au Garbage Collector
{ Analyse de Thread dumps pour identifier des sources de blocage.
{ Encadrement et formation des équipes au bonnes pratiques Clean Code, Correctness
d’algorithmes et optimisation de complexité.
Environnement: Kubernetes, Docker, Java 11 / 17, Programmation Fonctionnelle, Microsoft
Azure, Apache Kafka, Spring, API, GCP PubSub, Elasticsearch, Polars, Python.
Décembre 2024 –Mars 2025
Enseignement Module Administration Base de Données Oracle, Licence ACSID,
CNAM.
{ Introduction à l’architecture Multi-tenant d’Oracle
{ Étude des Index et plans d’exécution. Quand faut-il en mettre, et quand doit-on passer à un
outil de recherche textuelle (ex: Elasticsearch).
{ Étude des transactions et des propriétés ACID.
{ Accès concurrentiel aux données et gestion des locks.
{ Étude du langage PL/SQL.
{ Introduction des nouvelles fonctionnalités AI d’Oracle 23ai: l’aspect vectoriel.
Février 2024 – Juin 2024
Enseignement Java, Master MIMO, Université Paris 1.
Introduction au langage Java et aux frameworks les plus utilisés: Spring Boot, Hibernate, Jackson
Environnement: Java, Spring, Hibernate/JPA, REST
Janvier 2024 – Mai 2024
Encadrement PFE Rust, ISSAT Kasserine, Tunisie.
Exploration, documentation et maîtrise de Polars (Rust dataframe column) et Qdrant (Rust
Vector DB)
Environnement: Rust, Polars, Qdrant, Python
Janvier 2023 – Mai 2023
Encadrement PFE Rust, ISSAT Kasserine, Tunisie.
Apprentissage Langage Rust et développement application web (minimale) avec animation Rust
Tunisia Meetup
Environnement: Rust, Tokio, serde, Elasticsearch
Septembre 2022 – Janvier 2023
Mission chez CA-CIB, Ingénieur Senior Java.
Audit Applications Java / Big Data.
Détails du projet: Le client a toutes ses applications développées en offshore. Malgré
la mise en place d’audits réguliers, une vision détaillée est nécessaire pour identifier les différentes
lacunes.
{ Investigation et exploration du code. Proposition d’évolutions.
{ Rédaction de rapport détaillé
{ Organisation de workshops multiples à destination des développeurs ainsi que BAs pour expliquer
les principes de BDD et d’agilité.
{ Présentation et mise en place de pratiques Clean Code, Immutabilité de données, Design
Patterns.
Environnement: Apache Storm, Java 8, Gitlab, Apache Hbase
Janvier 2022 – Mai
2022
Encadrement deux PFEs Rust, ISSAT Kasserine, Tunisie.
Exploration et documentation de l’implémentation Apache Arrow dans Rust et de l’implémentation
du protocole de consensus Raft en Rust dans tikv
Environnement: Rust, Apache Arrow, arrow-rs, tikv, Raft
Janvier 2022 – Avril
2022
Mission chez Cegedim, Ingénieur Data, Employeur: SFEIR.
Investigation lenteur base de données MongoDB. Proposition de solution alternative pour la
recherche de données via Elasticsearch.
Détails du projet: Le client utilise MongoDB pour des recherches avancées multiples.
Ceci résulte en la présence de plus de 30 index par collection.
{ Investigation de la cause d’usage de mauvais index pour plusieurs requêtes
{ Remontée de bug à MongoDB
{ Conception et implémentation d’un PoC ElasticSearch qui répond aux mêmes requêtes avec
les mêmes volumétries mais avec des machines beaucoup moins coûteuses.
{ Présentation de nouvelles fonctionnalités non possible auparavant avec MongoDB mais ayant
un impact sur l’expérience utilisateur
Environnement: MongoDB, Elasticsearch, Java 11
Janvier 2021 –
Décembre 2021
Mission chez Viavoo, Ingénieur Data, Employeur: SFEIR.
Migration de données Solr vers Elasticsearch
Détails du projet: Alors que les deux produits se basent sur Apache Lucene pour du
FullText Search, plusieurs différences existent. L’utilisation de ZooKeeper dans SolrCloud en
est une. Une autre différence est la présence (récente) d’un Circuit-Breaker dans Elasticsearch
qui empêche l’exécution de requêtes assez coûteuses et susceptibles de causer des problèmes de
mémoire.
{ Mise en place d’un plan de migration avec Zéro downtime
{ Mise en place de différents types d’agrégations ES pour garder les mêmes fonctionnalités de
filtrage (faceting).
{ Utiliser une approche probabiliste pour la construction de nuage de mots au lieu des champs
fielddata (approche coûteuse).
{ Refactoring de code très ancien et implémentation des nouveaux modules de recherche /
indexation ElasticSearch
{ Après migration: optimisation des applications pour garder un coût minimum ElasticCloud:
Gérer des centaines de millions de documents avec 2 noeuds de 8G de RAM
Environnement: AWS, Spring Boot, MySQL, PostgreSQL, Elasticsearch, Elastic-Cloud, Solr,
Datadog, Git, Java 11.
Octobre 2019 – Avril
2020
Mission chez JCDecaux, Ingénieur Java Senior, Employeur: SFEIR.
Design de microservices Java pour la consommation et la transformation de données
Détails du projet:
{ Conception de schémas Avro pour messages Kafka
{ Optimisation de performances via une mise en place d’un traitement incrémental de données
Json (JSON Patch: RFC 6902)
{ Développement de nouvelles fonctionnalités et APIs
Environnement: Microservices, Spring Boot, Oracle, PostgreSQL, Elasticsearch, Kafka.
Décembre 2018 –
Septembre 2019
Mission chez Fircosoft, Ingénieur Data / Java Senior, Employeur: SFEIR.
Conception d’une solution d’intégration et de traitement de données de sources multiples (formats
hétérogènes)
Détails du projet:
{ Design d’un système de composants configurables et pluggables assurant l’extensibilité de la
plateforme.
{ Design et mise en place de schéma de bases données: une base schemaless (via PostgreSQL)
et une relationnelle, assurant l’intégration de différents formats, l’historisation, le backup et le
restoring de la data
{ Design de différents algorithmes de traitement de données massives (plusieurs millions de
records): diff, gestion de conflits, indexation de données, relations bijectives entre ensembles
de données
{ Introduction de l’approche fonctionnelle via monades, immutabilité, composition de fonctions
utilisation de nouvelles librairies: Vavr, Resilience4j, CQEngine
{ Mise en place de plusieurs techniques d’accès rapide aux données: partial indexes, CTE queries,
slowly changing dimensions (Type 2)
{ Implémentation (et accompagnement du dev) de la solution
Environnement: Microservices, Spring Boot, Tomcat, ActiveMQ, PostgreSQL, VAVR.
Avril 2016 –
Novembre 2018
Mission chez Geodis, Ingénieur Java EE / Big Data, Employeur: SFEIR.
Détails de la mission:
{ PROJET 1 - ESERVICES: Développement d’une plateforme de centralisation de stockage
et indexation de flux de données.
- Développement d’applications de streaming de flux communiquant avec IBM MQ et Apache
Kafka
- Développement d’applications de stockage et indexation de données dans Apache Cassandra
et Elasticsearch
- Développement d’APIs REST pour recherche de données dans Elasticsearch
Frameworks: Microservices, Spring Boot, Netflix Eureka, MQ, Kafka, Cassandra, ElasticSearch,
Java 8, Vavr, Git
{ PROJET 2 - WATCHER: Refonte partie back d’une application de monitoring / distribution
de charges
- Remodélisation de collections MongoDB pour mieux répondre aux requêtes
- Réimplémentation d’algorithmes de gestion de charge (problème du sac-à-dos)
- Refactoring du code pour respecter les bonnes pratiques Clean Code
Frameworks: Spring Data, MongoDB, AngularJS, Web Services SOAP
{ PROJET 3 - WTX: Implémentation API REST exposant des fonctionnalités IBM WTX
Frameworks: Spring Boot, MyBatis, REST, SOAP
Décembre 2014 –
Mars 2016
Mission chez Darty, Ingénieur Java EE, Employeur: Daveo.
Participation à l’évolution de système de vente de Darty.
Détails du projet:
{ Conception et développement de nouveaux modes de paiement (SVI et Limonetik)
{ Migration du système anti-fraude (de Fianet à SellSecure)
{ Migration du système de paiement Darty pour être compatible à la norme de sécurité PCI DSS
{ Support production : analyse et résolution de problèmes rencontrés en production
Environnement: Microservices, DB2, SVN, Git, Jira, Jenkins, Gradle, Maven, Spring, Google
Guava, Freemarker, Hibernate, Jackson, Dropwizard.
Juillet 2014 – Octobre
2014
Mission chez BNP Paribas, Ingénieur Java EE, Employeur: Advanced Derivative
Solutions.
Participation à la réalisation d’un projet de gestion de Workflows.
Détails du projet:
{ Conception et implémentation de workflows avec Camunda
{ Conception et implémentation de nouveaux services REST avec Dropwizard
Environnement: Tomcat 7, Spring STS, MS SQL Server, SVN, Jira, Bamboo, Gradle, Camunda,
Spring, Velocity, Hibernate, Dropwizard, Jackson.
Avril 2013 – Juin
2014
Mission chez KPMG, Ingénieur Java EE, Employeur: ArchiveYourDocs, IP-Tech
Group.
Participation à la réalisation d’une plateforme de gestion de paie des clients de KPMG France.
Basée sur une architecture SOA, la plateforme consiste en l’intéraction de plusieurs applications
métier.
Détails de la mission:
{ Conception et développement d’une application WS assurant la communication avec le moteur
de règles ILog (travail individuel)
Frameworks: Spring IoC, JAX-WS, Spring JDBC Template, Spring Transactions
{ Conception et développement d’une application web dédiée au paramétrage de règles de paie
(équipe de 4 personnes)
Frameworks: Spring MVC, MyBatis, Dojo, ILog Rule Team Server Java API
{ Conception et développement d’une application web déd...