Profil
Au-delà de l'aspect technique, j'ai l'habitude de m'impliquer dans les projets et monter rapidement en compétences sur les parties fonctionnelles. Ayant par ailleurs travaillé sur des couches d'interfaces (API GW et services d'orchestration pour la partie WEB, calculateurs centraux pour la partie embarquée), je suis également apte à produire des documents d'analyse afin de concevoir ou d'améliorer les architectures des systèmes applicatifs.
Je suis attaché à la culture Software Craftmanship et Clean Code. Je suis capable d'anticiper les dérives dans les projets dans un souci de maintenabilité. Je prône la correction des anomalies à la source, les solutions pérennes, le respect des standards, les approches API/Design-First. J'ai l'habitude de proposer le bon compromis entre le développement de nouvelles fonctionnalités et la résorption de dette technique.
Aimant travailler sur des projets front à titre personnel, je suis ouvert à m'orienter vers cette compétence.
Compétences
Expérience professionnelle
IN Groupe
Je travaille sur la refonte d'une application back-end de collecte et de transmission des données biométriques (demandes de visa) : migration de Java 1.6 vers Java 21 avec Spring Boot ainsi que la migration vers Java 21 et l'exposition API RMI vers API REST du serveur cryptographique de déchiffrement.
- Architecture micro-services
- Exposition d'API SOAP et REST
- Base de données PostgreSQL requêtée via Spring Data JPA
- Gestion de la concurrence pour la création du dossier et la complétude des pièces collectées en parallèle sur plusieurs instances
- Log des événements métier avec la durée de traitement pour les actions principales (Spring AOP)
- Génération de livrables (Maven plugin assembly)
- Configuration de jobs Jenkins de build et d'analyse Dependency-check/SonarQube
- Rédaction d'un guide d'installation
Pour les tests unitaires, j'ai proposé au client une exigence de couvertures de code et de branche de 100%, vérifiée à la compilation. Une exigence élevée permet :
- de limiter grandement les retours lors des tests d'intégration
- de produire un code minimaliste qui implémente le strict nécessaire pour répondre au besoin et qui respecte le principe de séparation des responsabilités
- de refactoriser rapidement le code sans crainte de régressions
- de détecter immédiatement le nouveau code non couvert, il n'y a pas de dette de tests découverte tardivement
Pour l'exposition de nouvelles API REST, j'ai proposé l'approche "contract first" qui consiste à définir le swagger dans un premier temps avant de générer le code (via openapi-generator-maven-plugin). Cette approche évite tout écart détecté tardivement entre composants de la couche API, fréquents avec l'approche "code first". Elle permet notamment de paralléliser les développements de l'exposition de l'API de ceux de sa consommation. Enfin, elle participe également à produire un code minimaliste (DTO générés, ne font pas partie des sources du projet)
Le projet historique comportait une application de génération de rapports PDF en Java 1.6, utilisant une librairie obsolète et rencontrant des problèmes de performances sur la base de données dus à la volumétrie. J'ai réalisé un PoC qui se base sur le stockage des événements métier dans Elasticsearch. Les données peuvent être supervisées en temps réel au moyen de l'outil Grafana qui a l'avantage de pouvoir agréger les données de plusieurs sources (Elasticsearch / PostgreSQL / Prometheus).
Axa
Sur la tribu de souscription IARD Entreprise, je suis développeur au sein de l'équipe Middleware / Java du SI :
- Virtualisation de services au niveau de l'API Gateway
- Développements de services d'orchestration en Webmethods ou en Java Spring Boot
- Suivi des releases et mises en production
Je suis rattaché à une squad produit, dans une gestion de projet agile, qui a comme périmètre deux produits :
- Un premier produit de souscription "simplifié" permettant le développement rapide sous-produits. Le produit est en production.
- Un produit "complet" reprenant par défaut tous les produits qui ne sont pas déjà repris dans le produit de souscription simplifié ou dans les produits développés dans les autres squads. Il s'agit d'un nouveau développement
J'effectue principalement les tâches suivantes :
- Analyse et correction d'anomalies
- Analyse de nouvelles fonctionnalités avec les PO/BA/concepteurs
- Rédaction de Documentation d'Architecture Technique
- Déclaration d'API sur l'API Gateway (approche "contract first")
- Développement en Webmethods (services existants) ou en Java (nouveaux services)
- Tests unitaires et d'intégration
- Revues de code (Webmethods ou Java)
- Suivi des livraisons, synchronisation avec les autres acteurs (squads, OPS) pour l'organisation des MEP
SII pour le client Thales GTS
- Support, analyse et correction d'anomalies
- Environnement ELK : montée de version 6 vers 7
- Environnement ELK : sécurisation Kibana
SII pour le client ArianeGroup
- Portage du code existant vers Java avec une demande forte pour la gestion d'anomalie
- Remontée des écarts : spécification vs. implémentation
- Mise à jour des Spécifications Techniques du Besoin pour intégrer de nouvelles demandes fonctionnelles
- Rédaction du Plan de Validation Logicielle
- Rédaction de tests unitaires et d'intégration
- Conception et développement de la méthode de génération des paquets de livraison (multiples produits et cibles de déploiement)
- Mise au point du logiciel sur plateforme d'essais sous environnement Linux
- Travail en interface avec l'équipe de durcissement d'OS et de cyber-sécurité
Maltem pour le client Contentia / EOS France
- Correction d'anomalies
- Analyse
- Rédaction de documentation,
- Développement de WebServices (back-end) et d'écrans CAF (front-end)
- Administration des serveurs
- Tests d'intégration
- Déploiement
- Développement de l'Echange de Données Informatisées avec les huissiers de justice
- Conception et développement back-end et front-end d'un framework de traitement en masse (parallélisation des actions, besoin de performances, souci de maintenabilité, supervision : avancement et historique)
- Architecture : assèchement des serveurs, amélioration des performances sur les parties back-end et front-end, mise en cache
- Mise en place d'un système de gestion des logs et de visualition de la charge des serveurs utilisant les outils Filebeat, Logstash, Elasticsearch et Kibana
LSO Medical
Conception d'un système de thermalisation liquide pour un appareil laser de puissance :
- Etude thermodynamique
- Dimensionnement et sélection des composants
- Maquette du circuit de thermalisation
- Réalisation d'une carte électronique d'alimentation, de contrôle de vitesse de ventilateurs et de commande de modules Peltier
- Programmation d'un µ-contrôleur Cypress en langage C
Sourcing & Creation
Prototypage de cartes d'amplification audio.
Formation
ISEN Institut Supérieur de l'Electronique et du Numérique
Matières :
- C
- JAVA
- Electronique numérique et analogique
- Technologies sans fil
- Electronique de puissance
- Circuits hyperfréquences
- Communications numériques
- Programmation d'un microcontrôleur
- DSP
- Traitement d'image
- Acoustique
- Réalisation d'un segway modèle réduit utilisant un microcontrôleur ST7
- Localisation et isolation de sources sonores
- Réalisation d'un radar cinémométrique par ultrasons
- Langage C : rendu de scènes 3D par la méthode du lancer de rayons