
Arnaud Dovi
Tech Lead Java Fullstack | Performance, Legacy
1 recommandation
Salaire / Taux journalier
1 personne recommande
Île-de-France, France
Mobilité : France, Suisse, ...
Freelance
Peut venir sur site
Expertises
Langues
À propos
Introduction
💡 TJM indicatif : tarif ajustable selon la durée et le contexte de la mission, connectons-nous @LinkedIn. 👋 Je suis celui qu'on appelle quand un système critique ne tient plus la charge, qu'un moteur C/C++ fuit en mémoire, ou qu'un legacy Java doit évoluer sans droit à l'erreur. Depuis plus de 10 ans, j'interviens au cœur des DSI du secteur financier et public sur des environnements où la moindre régression coûte cher : Java C/C++ et architectures legacy à moderniser sous fortes contraintes.
Expérience de travail
Crédit LogementFreelance
janv. 2021 - Présent
5 ans 10 mois
Paris, France
Consultant Expert Java & C/C++ | Modernisation & CI/CD
janv. 2023 - Présent
3 ans 10 mois
Paris, France
Suite à la stabilisation du moteur critique C/C++ (phase 1), intervention en conseil direct pour piloter la modernisation et l'industrialisation des projets web de la DSI du Crédit Logement. 𝗔𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗲 & 𝗠𝗼𝗱𝗲𝗿𝗻𝗶𝘀𝗮𝘁𝗶𝗼𝗻 Amorce de la migration des interfaces Thymeleaf/JavaScript vers React/TypeScript. Refactoring majeur des services web Java Spring Boot vers une architecture MVC propre, réduction significative des duplications et amélioration de la maintenabilité. Abstraction de la couche messagerie : remplacement du couplage direct IBM MQ par une interface JMS générique, compatibilité multi-broker (IBM MQ/ActiveMQ). Conception intégrale d'un service web bouchon JMS avec ActiveMQ pour isoler et tester les briques indépendamment. Migration des propriétés vers @ConfigurationProperties, alignement Spring Boot. Restructuration complète de l'écosystème Maven (centralisation Super-POM, modernisation des dépendances), préparation migration JDK 17/Jakarta. 𝗖𝗜/𝗖𝗗 & 𝗤𝘂𝗮𝗹𝗶𝘁𝗲́ (𝗗𝗲𝘃𝗢𝗽𝘀) Mise en place complète de la CI/CD via CMake et GitLab CI pour sécuriser les déploiements C/C++ et surveiller le parallélisme. Réécriture intégrale des tests Selenium/Cucumber (Fluent API, exécution parallèle). Augmentation significative de la couverture de code avec Spring Test MockMvc et RestTemplate sur l'ensemble des services web. 𝗘́𝘃𝗼𝗹𝘂𝘁𝗶𝗼𝗻𝘀 𝗳𝗼𝗻𝗰𝘁𝗶𝗼𝗻𝗻𝗲𝗹𝗹𝗲𝘀 Implémentation des nouvelles exigences métiers sur les web services REST et interfaces utilisateurs Thymeleaf/JavaScript. 𝗧𝗿𝗮𝗻𝘀𝗺𝗶𝘀𝘀𝗶𝗼𝗻 & 𝗣𝗲́𝗿𝗲𝗻𝗻𝗶𝘁𝗲́ Formation des développeurs internes sur l'architecture, les bonnes pratiques et les outils mis en place. Rédaction de documentation technique complète pour la maintenabilité long terme. ► Recommandé par le Chef de Projet et l'Engineering Manager (recommandations LinkedIn disponibles). 🛠 Stack : Java, Spring Boot, Spring Test, GitLab CI, CMake, Maven, JMS, ActiveMQ, IBM MQ, Selenium, Cucumber, Thymeleaf, JavaScript, React, TypeScript
Ingénieur Expert Java & C/C++ | Performance & Systèmes Critiques
janv. 2021 - déc. 2023
3 ans
Paris, France
Intervention critique pour résoudre des problèmes majeurs de performance et de stabilité sur les services web Java, causés par la couche back-end C/C++. Le système souffrait de fuites mémoire et d'une incapacité totale à gérer les appels simultanés, paralysant la production. 𝗦𝘁𝗮𝗯𝗶𝗹𝗶𝘀𝗮𝘁𝗶𝗼𝗻 & 𝗣𝗲𝗿𝗳𝗼𝗿𝗺𝗮𝗻𝗰𝗲 (𝗖/𝗖++ & 𝗝𝗮𝘃𝗮) Diagnostic et correction des fuites mémoire dans le code C/C++ via analyse bas niveau (Valgrind, debugging mémoire), rendant le système exploitable en charge réelle. Résolution des problèmes de concurrence (threads) : identification des race conditions et mise en place de mécanismes de synchronisation, rendant possible le traitement parallèle des requêtes. Refonte des services web Java Spring Boot : optimisation des couches applicatives, gestion des connexions, réduction des temps de réponse. 𝗠𝗼𝗱𝗲𝗿𝗻𝗶𝘀𝗮𝘁𝗶𝗼𝗻 & 𝗔𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗲 Refactoring des services web vers une architecture MVC propre. Abstraction de la couche messagerie : découplage d'IBM MQ via interface JMS générique, compatibilité multi-broker (IBM MQ/ActiveMQ). Modernisation Maven : centralisation Super-POM, préparation migration JDK 17/Jakarta. 𝗜𝗻𝗱𝘂𝘀𝘁𝗿𝗶𝗮𝗹𝗶𝘀𝗮𝘁𝗶𝗼𝗻 & 𝗤𝘂𝗮𝗹𝗶𝘁𝗲́ Mise en place CI/CD CMake avec GitLab CI pour le code C/C++ : intégration continue, compilation automatisée, surveillance du parallélisme. Couverture de code significative sur les services web, IHM Spring Boot et tâches Spring Batch. Réécriture des tests Selenium/Cucumber (Fluent API, exécution parallèle). 𝗧𝗿𝗮𝗻𝘀𝗺𝗶𝘀𝘀𝗶𝗼𝗻 Formation des développeurs à l'architecture, aux spécificités C/C++ et aux bonnes pratiques. Documentation technique pour la pérennité des corrections critiques. ► Cette phase a débloqué le traitement parallèle en production et ouvert la voie à la modernisation complète (2023-2025). 🛠 Stack : Java, C/C++, Spring Boot, Spring Batch, Hibernate, Maven, GitLab CI, CMake, IBM MQ, ActiveMQ, Valgrind, Selenium, Cucumber, Thymeleaf, JavaScript
Direction générale des finances publiques
janv. 2018 - déc. 2021
4 ans
Nantes, France
Ingénieur Expert Java Fullstack & Performance | Refonte Système Critique
janv. 2018 - déc. 2021
4 ans
Nantes, France
Refonte complète "from scratch" (v1 à v2) de la plateforme de consultation fiscale des entreprises. Migration d'un legacy Java 6/JBoss vers une architecture moderne Java 8/Spring Boot au sein d'une équipe de 10 personnes. 𝗜𝗺𝗽𝗮𝗰𝘁 𝗣𝗲𝗿𝗳𝗼𝗿𝗺𝗮𝗻𝗰𝗲 Optimisation drastique des temps de réponse : réduction du chargement des pages de 3 minutes à 5 secondes grâce au Lazy Loading JSF/PrimeFaces, tuning Hibernate et optimisation des procédures stockées PostgreSQL 10. 𝗔𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗲 & 𝗗𝗲́𝘃𝗲𝗹𝗼𝗽𝗽𝗲𝗺𝗲𝗻𝘁 𝗕𝗮𝗰𝗸𝗲𝗻𝗱 Conception et développement de l'application v2 en Java 8/Spring Boot. Création de services REST et SOAP avec sérialisation WSDL/JAXB et mapping @MapStruct. Conception d'un service Spring Batch dédié au transfert CSV vers PostgreSQL (ItemReader/ItemWriter sur mesure). Services bouchons SOAP/REST avec Spring WebMvc/OXM/Test. Procédures stockées SQL PostgreSQL 10, règles d'accès Hibernate. Configuration Spring 4/Servlet 3.0, logging Log4j/Spring AOP. Développement de librairies communes J2EE 8. 𝗦𝘁𝗿𝗮𝘁𝗲́𝗴𝗶𝗲 𝗱𝗲 𝗧𝗲𝘀𝘁𝘀 (𝗧𝗗𝗗) & 𝗤𝘂𝗮𝗹𝗶𝘁𝗲́ TDD systématique. Tests JUnit 4/5, Spring MockMvc, Mockito. Maven Surefire et Failsafe. Couverture > 70% (SonarQube, EclEmma, JaCoCo). Correction de failles de sécurité critiques (injections SQL). Javadoc complète. 𝗥&𝗗 𝗣𝗲𝗿𝗳𝗼𝗿𝗺𝗮𝗻𝗰𝗲 & 𝗗𝗲𝘃𝗢𝗽𝘀 Campagnes JProfiler menant à des optimisations majeures. Projets JMeter automatisés intégrés en CI pour intercepter les régressions avant la prod. Jenkins Pipeline (Groovy), scripts Shell Bash/Perl/Python. Déploiements automatisés WAR sur Tomcat. 𝗗𝗲́𝘃𝗲𝗹𝗼𝗽𝗽𝗲𝗺𝗲𝗻𝘁 𝗙𝗿𝗼𝗻𝘁𝗲𝗻𝗱 Interfaces utilisateur JSF/PrimeFaces, HTML, CSS, JavaScript, jQuery, Bootstrap. 𝗧𝗿𝗮𝗻𝘀𝗺𝗶𝘀𝘀𝗶𝗼𝗻 Onboarding et formation des développeurs. Documentation technique. Peer-reviewing systématique, livraisons applicatives. 🛠 Stack : Java 8, Spring Boot, Spring Batch, Spring WebMvc, Spring OXM, Spring Test, Hibernate, JSF, PrimeFaces, PostgreSQL 10, Jenkins Pipeline (Groovy), Maven, Docker, JProfiler, JMeter, Tomcat, Linux
Ingénieur Développement Java & Modernisation Legacy (COBOL)
janv. 2018 - déc. 2018
1 an
44470 Carquefou, France
Modernisation critique du système de gestion de paie des fonctionnaires français. Évolution d'une architecture legacy COBOL vers une stack moderne Java 8/Spring Batch, au sein d'une équipe de 35 personnes. 𝗠𝗶𝗴𝗿𝗮𝘁𝗶𝗼𝗻 & 𝗗𝗲́𝘃𝗲𝗹𝗼𝗽𝗽𝗲𝗺𝗲𝗻𝘁 (𝗖𝗢𝗕𝗢𝗟 → 𝗝𝗮𝘃𝗮) Analyse et rétro-ingénierie du code legacy COBOL : compréhension des règles métier enfouies dans un système historique non documenté, préalable indispensable à toute conversion. Conversion des traitements COBOL en batchs Java 8/Spring Batch : réécriture complète des flux de données en respectant les règles métier d'origine à l'identique. Conception de librairies communes et de composants Spring Batch sur mesure (ItemReader/ItemWriter personnalisés) pour standardiser les flux de données et garantir la réutilisabilité à travers les modules. 𝗕𝗮𝘀𝗲 𝗱𝗲 𝗗𝗼𝗻𝗻𝗲́𝗲𝘀 & 𝗣𝗲𝗿𝗳𝗼𝗿𝗺𝗮𝗻𝗰𝗲 Développement et optimisation de procédures stockées SQL complexes, exécutées via driver Oracle JDBC sur base PostgreSQL. Attention portée à la performance des requêtes dès la conception, dans un contexte de volumes de données importants (paie de l'ensemble des fonctionnaires). 𝗤𝘂𝗮𝗹𝗶𝘁𝗲́ & 𝗜𝗻𝗱𝘂𝘀𝘁𝗿𝗶𝗮𝗹𝗶𝘀𝗮𝘁𝗶𝗼𝗻 Développement sous environnement conteneurisé Docker, en respect strict des normes de qualité imposées par la DGFiP. Intégration systématique des recommandations SonarQube. Peer-reviewing rigoureux selon un processus pré-établi et documenté. Tests structurés avec réception et correction des incidents. 𝗧𝗿𝗮𝗻𝘀𝗺𝗶𝘀𝘀𝗶𝗼𝗻 Onboarding et formation technique des nouveaux développeurs : architecture, accompagnement, intégration. Rédaction de questions dédiées au client via plateforme Mantis pour clarifier les ambiguïtés fonctionnelles. ► Compétence rare acquise : lire et comprendre du COBOL legacy pour le traduire fidèlement en Java moderne - rétro-ingénierie recherchée par les grandes administrations et institutions financières. 🛠 Stack : Java 8, Spring Batch, COBOL, Oracle DB (JDBC), PostgreSQL, Docker, SonarQube, Eclipse, SVN, Mantis
Développeur Java Fullstack & DevOps (CI/CD Lead)
France Travail
janv. 2015 - déc. 2018
4 ans
44800 Saint-Herblain, France
Développement et industrialisation du système critique de rapprochement offres/demandeurs d'emploi. Double rôle : développeur Java fullstack et responsable de l'intégration continue, au sein d'une équipe de 8 personnes. 𝗔𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗲 𝗗𝗲𝘃𝗢𝗽𝘀 & 𝗖𝗜/𝗖𝗗 (𝗟𝗲𝗮𝗱 - 𝟲 𝗺𝗼𝗶𝘀 𝗱𝗲́𝗱𝗶𝗲́𝘀) Conception et mise en place de A à Z de la chaîne CI/CD sur socle vierge : Linux CentOS, Jenkins, Maven, Java 8, Tomcat 7, Oracle Database. Automatisation complète des livraisons en production sur Oracle WebLogic via scripts Shell robustes validés ShellCheck. Mise en place des rapports SonarQube dès le départ, instaurant une culture qualité continue. Installation de Nagios pour le monitoring de l'infrastructure. Durcissement sécurité : configuration SELinux, gestion fine des permissions chmod. ► Résultat : l'équipe est passée de livraisons manuelles à risque à un processus automatisé, surveillé et reproductible. Configuration Maven du cycle complet de construction des artefacts Java. 𝗗𝗲́𝘃𝗲𝗹𝗼𝗽𝗽𝗲𝗺𝗲𝗻𝘁 & 𝗠𝗼𝗱𝗲𝗿𝗻𝗶𝘀𝗮𝘁𝗶𝗼𝗻 Migration Java 6 vers Java 8 (expressions lambda, nouvelles API). Transformation des web services SOAP vers REST avec Spring WebMvc et Servlet 3.0. Intégration des règles métiers complexes dans les services REST/SOAP. 𝗗𝗲́𝘃𝗲𝗹𝗼𝗽𝗽𝗲𝗺𝗲𝗻𝘁 𝗙𝘂𝗹𝗹𝘀𝘁𝗮𝗰𝗸 Construction des IHM conseillers Pôle Emploi : JSP, HTML, CSS, JavaScript, jQuery, Bootstrap, Spring Boot. Logique métier back-end liée aux règles de rapprochement offres/demandeurs. 𝗣𝗿𝗼𝗱𝘂𝗰𝘁𝗶𝗼𝗻 & 𝗧𝗿𝗮𝗻𝘀𝗺𝗶𝘀𝘀𝗶𝗼𝗻 Gestion des incidents N3 (IBM ClearCase). Pilotage des livraisons (IBM ClearQuest). Documentation technique. Onboarding et formation des développeurs. ► Mission fondatrice : double casquette dev + DevOps, approche CI/CD reproduite ensuite chez DGFiP et Crédit Logement. 🛠 Stack : Java 6/8, Spring Boot, Spring WebMvc, REST/SOAP, Servlet 3.0, Oracle WebLogic, Oracle DB, Jenkins, Maven, SonarQube, Linux CentOS, Shell (ShellCheck), Nagios, SELinux, IBM ClearCase/ClearQuest, JSP, JavaScript, jQuery, Bootstrap
Développeur d'Applications .NET & Modernisation Legacy
LICIEL Environnement
janv. 2010 - déc. 2013
4 ans
44800 Saint-Herblain, France
Maintenance et évolution du logiciel cœur de métier utilisé quotidiennement par des centaines d'experts immobiliers sur le terrain. Transition technologique du legacy Visual Basic 6 vers .NET, chez le leader national du logiciel de diagnostics immobiliers. 𝗤𝘂𝗮𝗹𝗶𝘁𝗲́ 𝗖𝗼𝗱𝗲 & 𝗔𝘀𝘀𝗮𝗶𝗻𝗶𝘀𝘀𝗲𝗺𝗲𝗻𝘁 𝗟𝗲𝗴𝗮𝗰𝘆 (𝗩𝗕𝟲) Assainissement majeur de la dette technique accumulée sur le code historique Visual Basic 6, logiciel en production depuis des années. Éradication systématique des anti-patterns critiques : suppression des blocs "On Error Resume Next" disséminés en tête de chaque méthode, qui masquaient les erreurs et provoquaient des crashs silencieux impossibles à diagnostiquer. Fiabilisation progressive de l'application : chaque correction a directement réduit le nombre d'incidents remontés par les utilisateurs terrain. 𝗖𝗼𝗻𝗰𝗲𝗽𝘁𝗶𝗼𝗻 & 𝗠𝗼𝗱𝗲𝗿𝗻𝗶𝘀𝗮𝘁𝗶𝗼𝗻 (.𝗡𝗘𝗧) Participation à l'architecture du nouveau logiciel en VB.NET / .NET Framework : conception des fondations techniques de la future version destinée à remplacer le legacy VB6. Développement de modules web annexes en PHP/Symfony, élargissant l'écosystème applicatif au-delà du logiciel desktop. Requêtes SQL et accès aux données. 𝗥𝗲𝗹𝗮𝘁𝗶𝗼𝗻 𝗖𝗹𝗶𝗲𝗻𝘁 & 𝗦𝘂𝗽𝗽𝗼𝗿𝘁 𝗧𝗲𝗰𝗵𝗻𝗶𝗾𝘂𝗲 Support direct niveau 3 et télé-assistance auprès des experts immobiliers via TeamViewer : diagnostic à distance, compréhension des besoins métier terrain et résolution rapide d'incidents critiques en production. Ce contact direct avec les utilisateurs finaux a forgé une compétence clé : comprendre un contexte métier avant de coder, adapter son discours technique au niveau de son interlocuteur. ► Première expérience professionnelle - c'est ici que j'ai appris l'approche qui définit mon travail aujourd'hui - assainir l'existant progressivement, sans rupture de service, tout en préparant la migration vers une architecture moderne. 🛠 Stack : Visual Basic 6 (VB6), VB.NET, .NET Framework, Visual Studio, PHP, Symfony, SQL, TeamViewer
Chercheur en Cybersécurité & Reverse Engineering (White Hat)
Trend Zero Day Initiative
janv. 2003 - déc. 2013
11 ans
Nantes, France
Recherche indépendante en sécurité offensive. Découverte de vulnérabilités critiques (zero-day) sur des logiciels utilisés par des centaines de millions de personnes, dans le cadre du programme Bug Bounty le plus reconnu de l'industrie (TippingPoint ZDI / TrendMicro). 𝗙𝗮𝗶𝗹𝗹𝗲𝘀 𝗖𝗿𝗶𝘁𝗶𝗾𝘂𝗲𝘀 - 𝗠𝗶𝗰𝗿𝗼𝘀𝗼𝗳𝘁 𝗢𝗳𝗳𝗶𝗰𝗲 (𝟮𝟬𝟬𝟲-𝟮𝟬𝟬𝟴) Identification de plusieurs vulnérabilités d'exécution de code à distance (RCE) sur Microsoft Word, Excel et PowerPoint. Remerciements officiels de Microsoft dans quatre bulletins de sécurité : MS06-037 (CVE-2006-1306, CVE-2006-2388), MS06-058, MS06-062 (CVE-2006-3650), MS08-016 (CVE-2008-0113). Chaque faille corrigée par patch distribué mondialement. 𝗙𝗮𝗶𝗹𝗹𝗲 𝗖𝗿𝗶𝘁𝗶𝗾𝘂𝗲 - 𝗩𝗮𝗹𝘃𝗲 𝗦𝘁𝗲𝗮𝗺 (𝟮𝟬𝟭𝟯) Vulnérabilité RCE dans le client Steam (ZDI-13-269) : exploitation via messages chat malformés permettant l'exécution de code arbitraire. Remerciements officiels de Valve. 𝗥&𝗗 & 𝗥𝗲𝘃𝗲𝗿𝘀𝗲 𝗘𝗻𝗴𝗶𝗻𝗲𝗲𝗿𝗶𝗻𝗴 Ingénierie inverse de binaires complexes sans accès au code source : désassemblage, analyse des structures mémoire, mécanismes internes non documentés. Développement de POC : shellcodes assembleur x86, buffer overflows, heap spraying. Fuzzing systématique de formats de fichiers propriétaires. Vente des informations techniques à Zero Day Initiative sous contrat de confidentialité. Outils : IDA Pro, OllyDBG, GDB, Ghidra. 𝗘𝘅𝗽𝗲𝗿𝘁𝗶𝘀𝗲 𝗕𝗮𝘀 𝗡𝗶𝘃𝗲𝗮𝘂 - 𝗟'𝗵𝗲́𝗿𝗶𝘁𝗮𝗴𝗲 𝗽𝗲𝗿𝗺𝗮𝗻𝗲𝗻𝘁 Cette décennie a forgé une compréhension intime des systèmes au niveau le plus bas : gestion mémoire, instructions processeur, pile d'exécution, allocation heap. C'est cette expertise que j'applique aujourd'hui pour diagnostiquer des fuites mémoire et problèmes de concurrence en C/C++, comprendre le comportement réel d'une JVM, et optimiser du code avec une conscience précise de ce qui se passe en mémoire. 🛠 Stack : Assembleur (ASM x86), C/C++, Reverse Engineering, Debugging (IDA Pro, OllyDBG, GDB, Ghidra), Fuzzing, Exploit Development, Shellcoding
Formation
ENI Ecole Informatique
Développeur Logiciel, Programmation informatique
2015 - 2015
1 an
ENI Ecole Informatique
Technicien supérieur de support en informatique, Informatique
2010 - 2010
1 an
Portfolio

ZDI-13-269 : Valve Steam User Chat Message Remote Code Execution Vulnerability

MS08-016 : Vulnerabilities in Microsoft Office Could Allow Remote Code Execution

MS06-062 : Vulnerabilities in Microsoft Office Could Allow Remote Code Execution
