Landry - Architecte JAVA
Ref : 140106T001-
94120 FONTENAY SOUS BOIS
-
Développeur, Architecte, Consultant technique (38 ans)
-
Freelance
RÉFERENCES PROJETS
Storengy (groupe ENGIE) Depuis Novembre 2018
Développeur (Lead Java) / Devops
Activités :
✓ Refonte de l’outil de gestion des demandes de stockage de gaz en provenance clients de
Storengy. Outil central dans le SI de Storengy.
o Conception/modélisation du « cœur » de la solution : l’allocation des ressources de
stockage entre les clients en tenant compte de leur droits
▪ Etude de la littérature sur les problèmes d’allocation équitable de ressources
▪ Réalisation d’un POC avec la programmation par contraintes
▪ Solution finale implémentée avec le solveur CBC (optimisation linéaire) via
GAMS
o Développement de la solution avec Spring boot pour le backend et Angular pour le
front
▪ Implémentation d’une solution de lock distribué avec élection de leader pour
assurer la consistance de certaines opérations (exécution unique).
▪ Redondance de la solution avec une stratégie de ségrégation de nœuds
applicatifs par fonction (nœuds API/nœuds back office)
▪ Optimisation de performance : fuites mémoires, requêtes base de données…
✓ Mise en place d’une chaine d’intégration et de déploiement continue sur les environnements
openshift (sur Azure)
o Définition d’une stratégie de gestion de branche
o Création des éléments des différents pipelines (build et déploiement)
▪ Image docker des runners
▪ Templates (deployment config, route, service, secrets…) et scripts de
configuration pour openshift
Environnement technique :
✓ Framework : Spring (Security, Integration, REST, Envers), Angular
✓ Gestion de version : GIT
✓ Build : Maven
✓ Intégration/Déploiement continue : docker, Gitlab CI
✓ Cloud computing : Azure
✓ Orchestration de containers : Openshift
✓ Langage : Java, Typescript
✓ Diagnostic : JProfiler, Dynatrace
✓ Qualité de code : Sonar
✓ Gestion de base de données : Flyway, PostgreSQL
Casino (via Whoz) Septembre 2018 – Décembre 2018
Développeur (Kotlin) / Devops
Activités :
✓ Développement d’une application de création d’offres promotionnelles multicritères sur les
produits gérés par un distributeur (Casino dans un premier temps). Les offres sont ensuite
transmises à un SI tierce qui les rend disponibles aux clients (via une application mobile dans
le cas de Casino).
o Conception et développement du back end en Kotlin avec Spring Boot (SCRUM)
o Mise en place d’un workflow d’intégration de fichiers avec Spring intégration (Java
DSL) et Google Cloud Storage
o Pipeline d’intégration et déploiement continue avec Bitbucket CI
o Déploiement automatisé sur Google Cloud Computing (Kubernates)
o Tests unitaires et d’intégration avec Mockito, Spring Boot test et Testcontainers
(pour créer un conteneur Postgresql lors des tests d’intégrations)
Environnement technique :
✓ Framework : Spring (Security, Intégration, REST, Envers)
✓ Gestion de version : GIT
✓ Build : Gradle
✓ Intégration/Déploiement continue : docker, Bitucket
✓ Cloud computing : GCP
✓ Langage : Kotlin
✓ Qualité de code : Ktlint
✓ Automatisation de processus : Bitbucket
✓ Gestion de base de données : Liquibase, PostgreSQL
Renault Digital (Groupe Renault) Mars 2017 – Juillet 2018
Développeur (Groovy + Java) /Lead technique Back end/Devops
Activités :
✓ Développement complet d’un outil de suivi de la production et d’un outil de saisie d’audit à
destination des responsables d’unités de production des usines du groupe Renault (en
France et à l’étranger)
o Conception et développement du back end (Spring Boot) en agilité (méthodologie
SCRUM et Kanban)
o Gestion de la base de données avec Liquibase
o Mise en place d’un workflow d’intégration de données externes (accessible en http)
avec Spring intégration (Java DSL)
o Pipeline d’intégration et déploiement continue avec Gitlab CI
▪ Git flow (légèrement adapté)
▪ Utilisation de runner (conteneurs) adaptés à chaque phase de build
o Déploiement automatisé sur infra Docker (AWS + Docker Swarm)
o Déploiement en local (via docker compose) de toute la stack (webapp angular, microservices spring boot, base de données PostgreSQL)
o Tests unitaires et d’intégration avec Mockito, Spring Boot test et Testcontainers
✓ Mise à disposition de l’équipe d’un environnement de build automatisé et de test
d’intégration (utilisé pour les démos)
o Automatisation du build du front et du back (jenkins)
o Création d’une infrastructure complète (serveur d’application et base de données)
virtualisée avec PROXMOX
o Déploiement automatisé sur l’infra virtualisée (jenkins)
o Mise en place d’un analyseur de logs avec la stack ELK (Elasticsearch, Logstash et
Kibana)
o Evaluation de la qualité de code avec SONAR
Environnement technique :
✓ Framework : Spring (Security, Intégration, REST, Envers)
✓ Gestion de version : GIT
✓ Build : Maven (plugin pour PMD, checkstyle, findbugs), Gradle
✓ Intégration/Déploiement continue : docker, gitlab
✓ Cloud computing : AWS
✓ Langage : Java, Groovy
✓ Qualité de code : SONAR
✓ Automatisation de processus : GitLab, Jenkins
✓ Gestion de base de données : Liquibase, PostgreSQL
Cofely (Groupe ENGIE, anciennement GDF SUEZ) Décembre 2015 – Janvier 2017
Développeur/Référent technique – Equipe d’architecture et d’échange
Activités :
✓ Migration d’une infrastructure EAI WebSphere Process Server de 6.1 vers 8.5
o Migration et adaptation des applications du socle pour la version 8.5
o Développement spécifique pour assurer la compatibilité avec la 8.5
o Résolution des anomalies liées à la migration
✓ Développement d’applications de la plateforme d’échange
o Exemples de projets développés :
▪ Interconnexion d’un back end mobile avec des services métiers exposés via
une solution d’API management
▪ Transferts de flux fichiers entre systèmes hétérogènes (exemple : SAP vers
Base de données)
✓ Exploitation des applications
o Optimisation du processus d’intégration et de déploiements des applications
▪ Fiabilisation des processus
o Prise en charge des livraisons des environnements d’intégration à la production
Environnement technique :
✓ Infrastructure EAI : WPS 6.1 et 8.5
✓ OS : AIX
✓ Langage : Java
✓ Framework : Java EE
✓ Gestion de version : SVN
✓ Automatisation de processus : jenkins
EDELIA (Groupe EDF) Avril 2015 – Décembre 2015
Exploitant technique – Equipe de production, release management
Activités :
✓ Automatisation du processus de déploiement des applications (continuous delivery)
o Analyse des processus (existants) de déploiement et livraison des applications
o Formalisation des principes directeurs autour du concept de « pipeline de
déploiement »
o Développement d’un outil avec :
▪ GLU (automatisation des déploiements)
▪ Le plugin GLU pour Gradle (Pilotage des déploiements via des taches Gradle)
▪ Zookeeper (Centralisation des dépendances et scripts de déploiement)
▪ Jenkins (Pilotage du déploiement)
o Gestion de la montée en compétence des exploitants (intégration, recette et prod)
▪ Partage de concepts devops
o Applications gérées :
▪ Micro service SpringBoot
▪ Web Service WPS 6.2
▪ Applications WAS 6.1
✓ Développement en Groovy d’une solution de suivi des flux (fichiers) entrants dans le SI
o Formalisation du besoin et analyse des flux fichiers
o Création de scripts groovy (parsing XML, sql…)
EDELIA (Groupe EDF) Mars 2014 – Avril 2015
Référent technique, Responsable outils – Equipe de développement interne
Activités :
✓ Développement d’applications
o Création de services de suivi de consommation en énergie électrique et gaz
▪ Architecture micro services
▪ Web service RESTFul
▪ Implémentation des algorithmes de calcul d’énergie
o Création de batch Spark pour le calcul en masse sur des index électriques et gaz
▪ Mise en place de la plateforme de développement (DSE 4.5, topologie, ressources…)
▪ Conception : définition des transformations et actions spark
▪ Développement en scala
▪ Packaging de la solution avec maven
▪ Déploiement et exécution sur DSE 4.5
✓ Mise en place et gestion d’une plateforme d’intégration continue (PIC)
o Spécification et application des principes de l’intégration continue :
▪ Définition des normes (organisation des modules maven, versionning…)
▪ Elaboration d’une stratégie de gestion de branche
▪ Définition des processus : rôle, responsabilité
o Installation et paramétrage de la PIC
▪ Création des scripts (shell et groovy) des jobs d’analyse récurrente et de livraison
▪ Structuration et création des Jobs jenkins
▪ Installation et configuration des plugins sonar et jenkins. Exemple :
• Notification par mail avancée
• Echec de build en fonction des métriques sonar
▪ Création des jobs prototypes
▪ Création des utilisateurs et configuration des rôles
o Documentation de la plateforme :
▪ Guide développeur (normes, bonnes pratiques, commandes GIT…)
▪ Guide d’exploitation de la PIC (création de jobs, livraison à partir de la PIC…)
o Supervision de la plateforme
▪ Monitoring des ressources (charge CPU, mémoire JVM, worker jenkins…)
▪ Gestion des incidents
▪ Amélioration continue de la PIC
✓ Accompagnement des équipes de développement : Bonnes pratiques de développement, GIT, maven,
PIC, spark
Environnement technique :
✓ Framework : Spring, Spring Boot, hibernate
✓ Langage : Java, Groovy, Scala
✓ Automatisation de processus : jenkins, GLU
✓ Qualimétrie : Sonar
✓ Gestion de version : GIT
✓ Production et gestion logiciel : Maven, Artifactory, Gradle
✓ Base de donées NoSql : Cassandra
✓ OS : Unix (Debian, Ubuntu)
AXA BANQUE
Novembre 2009 – Décembre 2013
Architecte Junior (interne) - Département Architecture
Domaine d’intervention :
Développements liés aux évolutions du SI (voir exemple ci-dessous)
Supports techniques aux équipes projets, fonctionnements et aux équipes de développement
• Optimisation de performance sur les systèmes majeurs
Tuning de JVM (politique de garbage collector, configuration espace mémoire…)
Détection de fuites mémoires (analyse de heap dump et de verbose GC)
Optimisation de code
• Résolutions d’anomalies : support niveau 3, rédaction de rapport d’intervention et d’expertise (voir exemple ci-dessous)
• Assistance technique sur les technologies, Framework, normes et standard définit par l’architecture
Activités propres au département architecture
• Veille technologique
• Etude de la faisabilité de solutions. Exemples :
Appel RMI via le protocole corbaloc dans un environnement clustérisé
Cadrage d’une opération de fusion de deux bases Oracle
Exposition de web service en http dans l’ESB Websphere
• Conception et Implémentation de solutions spécifiques. Exemples :
Intégration du protocole de sécurité Spring OAuth 2
Développements de composants transverses au SI
Environnement technique :
Architecture SOA
Infrastructure
• Frontaux WEB : IHS (IBM http Server)
• Bus de service : WESB 6.1
• Serveur d’application JEE : WAS 8.5, JBoss AS 7.1
Base de données : Oracle
OS : Unix (AIX, Linux)
Aperçus de quelques sujets traités à Axa banque :
Développement d’une application d’injection de mouvements bancaires (achats cartes, virements, prélèvements…) vers d’autres systèmes en temps réels
o Conception avec une approche orientée par le domaine (Domain Driven Design)
Définition d’un modèle pour l’application
Application de l’architecture en couche DDD (application, domain, infrastructure…)
Mise en œuvre des patterns structurants : Repository, Factory, Value Object, Specification…
o Développement de la solution
Java EE 6 : EJB 3.1 (Timer, Evènement, appel asynchrone, EJB Singleton, EJB Stateless), Hibernate 4.0, JTA 1 .1, CDI, JAX-RS (Restlet)
Serveur d’application : WAS 8.5, JBOSS AS 7.1
Tests unitaires et intégration continue : JUnit, Arquillian, Hudson
Qualité de code : Sonar
SGBDR : Oracle, MySql
o Développements (PL/SQL) des outils de maintenance de l’application
Script de rattrapage en cas d’échec lors des traitements temps réels
Script d’initialisation
Script de purge
o Participation à la phase de qualification
o Suivi de la mise en production
o Documentation de la solution
Résolution d’anomalies et optimisation des performances de l’application de gestion de la relation clientèle de la banque
o Coté client lourd Swing (application FORTE refondu en java Swing avec compilateur automatique – plusieurs millions de lignes de code) :
Détection de fuites mémoires résolution des figeages intermittents de l’application
Redimensionnement des espaces mémoires de la JVM Amélioration notable des temps de réponses du client lourd
o Coté serveur d’application (application web sur WAS avec JVM Websphere J9)
Changement de la politique de Garbage (gencon au lieu de optthuput) amélioration des temps de traitement et des temps de réponse du serveur
Résolution de dead lock qui empêchait la « clusterisation » de l’application cliente Fonctionnement rétabli en mode cluster
Création d’une API RESTful pour exposer les informations du réseau de distributeur de la banque. Données accessibles via une application iPad.
o Application des contraintes du style d’architecture REST : URI, Verbe http, Hypermedia Controls (HATEOAS)
o Développement des web service avec JEE 6
Implémentation JAX-RS : Jersey 1.8
Provider JSON : Jackson
Provider JPA : Hibernate 4.0
Sécurité : HTTPS, web service d’authentification SOAP http, Basic Auth
o Documentation de l’API (URI + Format JSON)
DataVisualisation : Création d’une bibliothèque de composants graphiques (en cours d’utilisation sur le site client Axa Banque) – Montée en compétence et réalisation : 1 mois
o Création de camembert, de barres et de jauges (horizontales et verticales) à valorisation dynamiques (exécution javaScript côté client). Voir capture ci-dessous.
o Choix de la bibliothèque javaScript Raphael.js pour la constitution des graphiques après études comparatives dans le respect des contraintes projets (coûts + délais) et des contraintes techniques (navigateurs client)
o Développement des composants graphiques
Utilisation d’outils mathématiques élémentaires (géométrie, trigonométrie)
Programmation : javaScript, HTML
Minification et offuscation de code : UglifyJS avec le serveur node.js
o Documentation de l’intégration des graphiques
o Accompagnement technique des développeurs web pour l’intégration des graphiques dans l’application web.
Formation
2009 : Ingénieur ESIEE Paris (majeure informatique)
2006 : Maths sup/spé (Lycée Fénelon Sainte Marie, Paris 8ème)
2004 : Bac Scientifique (Lycée Pablo Picasso, Fontenay Sous-Bois)
COMPÉTENCES TECHNIQUES
Systèmes Unix, Ubuntu, AIX, Windows
Conception Domain Driven Desing, SOA, REST
Framework Spring (Core, MVC, Security, OAuth 2.0), Java EE 6, Hibernate
Langages Shell sh, Java, C#, C++, C, SQL, PL/SQL, javascript, d3.js, Raphael.js, XML (JAXB, XTream)
Serveur d’application Websphere : WAS 6.1 et 8.5 – WESB 6.1 et 6.2 et 7.0, JBOSS AS 7.1, Tomcat
SGBDR MySQL, Oracle
Environnent de Dev. Eclipse, Visual studio .NET
Gestions de version GIT, Mercurial, SVN, CVS
Tests unitaires JUnit, Arquillian
Qualité de code Sonar
Intégration continue Jenkins (Hudson)
Outils de diagnostic HP Diag, visual VM, Memory Analyser Tool (MAT), IBM Support Assistant (ISA)
Langues Anglais opérationnel