Jerome - Architecte J2EE
Ref : 121115D002-
75000 PARIS
-
Architecte, Consultant technique (49 ans)
-
Freelance
Expérience professionnelle
Hardis Group (depuis mai 2020)
Formation GCP et certification GCP Associate Engineer
Réalisation d'audits applicatifs :
• outil Sonar pour l'analyse statique (bugs et respect des conventions de codage, évolutivité
et transférabilité du code, couverture des tests, security hot spots),
• adéquation des choix technologiques (frameworks mis en oeuvre / état de l'art),
• plan de remédation/progrès
Solocal nov 2019 – avril 2020 (6 mois)
Evolution de l’architecture du socle technique et APIsation :
• Approche micro-services (Spring Boot), open api (swagger)
• Approche MDA (generation de code back spring et front Angular via la solution Jhipster)
• Déploiement de services managés Azure AD / gestion de l’authentification
(OpenIDConnect) et l’autorisation (niveau applicatif et niveau ressource) OAuth2
De 2002 à 2019 : Improve/OpenWide/Smile (SSII éditeur de socle technique J2EE)
BforBank juin-oct 2019 (5 mois)
Adaptation de WSO2 API Manager aux besoins du client.
Développement d’un handler WSO2 de verification de signature http, selon les directives DSP2 /
specification STET (norme d’ouverture des APIs inter banques).
Intégration des adaptations et du composant handler dans une chaîne de déploiement via scripts
Ansible (en environnement AWS).
AEFE (Agence pour l'enseignement français à l'étranger) janv-mai 2019 (5 mois)
Développement au forfait (Smile) d’un batch spring d’importation d’utilisateurs dans la solution
WSO2 Identity Server, en utilisant l’API Rest WSO2 (standard SCIM API).
Développement d’une application de gestion de groupes Identity Server en Angular 7, avec
backend composé de microservices Spring.
Crédit Agricole Assurances janvier 2018 – déc. 2018 (1 an)
Etat de l'art des solutions Big Data (Hadoop, Spark)
Optimisation de l'architecture des projets pour les accès depuis les canaux numériques (digital) :
• Les opérations de lecture à forte charge ne se feront plus sur le zOS (pour des raisons de
coûts) mais sur des bases nosql contenant des données répliquées
• Mise en œuvre de la solution IBM Infosphere Data Replication (outil de change data
capture) pour mettre à jour les bases nosql cibles d’après les changements des bases
zOS/DB2.
Galec (groupe Leclerc) janvier 2016 – décembre 2017 (2 ans)
Architecte du framework de développement Alice.
• Conception de l'architecture de WebServices Rest (Cxf, Spring)
◦ Invocation transparente via proxies Cxf (injectés depuis une BeanProcessorFactory
Spring)
◦ Gestion de la propagation des exceptions sur la chaîne d'appels inter-services, ainsi
que des autorisations (comptes de service)
◦ repositories de données via Spring Data, modules autonomes via Spring Boot
(approche micro-services)
◦ Approche orientée Domain Driven Design.
• Conception de l'architecture front (Ember JS 2),
◦ Couche d'accès aux webservices via Ember Data (adapter et serializer spécifiques)
◦ Gestion des exceptions et des erreurs de validation (norme Json API),
◦ Développement de composants complexes (wrapper Ember du composant datagrid
Handsontable)
◦ Gestion de l'authentification / SSO via Jboss Keycloak et un composant ember
spécifique.
• Projet en mode agile (scrum, outils Treillo et Icescrum) au sein d’une équipe de 4
architectes.
• Usine logicielle basée sur GitLab (merge requests), Jenkins (pipelines spécifiques), maven,
Nexus, Ansible, Docker
Open Wide (decembre 2015)
Etude des solutions d'intégration / BPM : Bonita et Activti. Rédaction d’un article comparatif et
réalisation d’une extension Activiti pour le socle technique Improve Foundation.
Engie sep 2014 – nov 2015 (1 an et 3 mois)
Architecte leader du socle Digital Rest.
Conception pour la médiation des services Rest et Soap (exposition des services SI core via
façades Rest pour accès multicanal).
Mise en place de la sécurité : identification des différents canaux numériques (à des fin d'API
Management / throtlling), Gateway Oracle OAM, identification et autorisations via Token JWT,
gestion de l'impersonation.
Support au projet d’application mobile Gdf (version native iOS et Android du portail DolceVita) :
architecture, sécurité, optimisation des performances dans un contexte SOA (accès au backend
mutualisé, mise en place de caches et synchronisation).
Open Wide (juillet-août 2014)
Mise en place de l’architecture applicative (industrialisation de la couche cliente et de l’accès aux
services REST) pour le projet d’app store territorial européen OASIS.
Technologies : Spring boot, jQuery, Boostrap, MongoDB
Erdf août 2013 – juin 2014 (1 an)
Mise en place de l’intégration continue pour le projet STM (bigData avec Teradata).
Création d’un adapter DBMaintain pour Teradata. Mise en place de la chaîne IC maven pour la
gestion incrémentale de la base, les tests d’intégration.
R&D Open Wide (juin-juillet 2013)
Réalisation d’une formation Android avancée/concise (orientée développeurs Java
expérimentés) : accès services Rest (implémentation serveur basée sur Jersey), authentification
OAuth2 (accès tâches Google Tasks).
Création d’une application Android de remoting de Jenkins et Redmine pour la forge logicielle
Improve Factory.
Etude de l’intégration continue hors J2EE (frameworks js, iOS et Android)
CASDEN (mars à mai 2013)
Mise en place de l'intégration continue (Jenkins, Nexus, Maven)
Migration d'un référentiel de projets SOA (200 projets) : gestion centralisée de lots de version,
résolution des ambiguïtés dans le choix de versions, utilisation avancée du plugin m2Eclipse et
des Jobs Jenkins de type Maven.
Développement d'un automate de création de projets Jenkins à partir des API Rest.
RATP (octobre 2012, conseil)
Adaptation à IE8 de la partie cliente d'une application de gestion de caméras (réalisée en Dojo et Spring MVC) : normalisation HTML par IE lors de l'injection js, cache de requêtes XHR, évolution de la syntaxe des filtres VML (utilisés pour la génération de plans complexes via Dojo gfx).
Environnement technique : Eclipse, Dojo, Spring MVC, Spring, Hibernate, Maven.
OPEN WIDE (septembre 2012)
Etude des solutions BPM et workflow open source (Bonita, Activiti), rédaction d’un article
Développement d’une extension BPM (basée sur Activiti) pour le socle Improve Foundations, et d’une application prototype.
Projet open source : plateforme musicale Emotuned (2011-2012)
Réalisation d'une plateforme musicale web (iTunes like)
Développement agile avec approche MDA, via le framework Direct2CP, évolution de CP2JavaWS: php côté serveur en plus de J2EE, gestion automatique de formulaires (et validation), nouveaux composants dont player audio HTML5 avec CSS3, drag and drop upload HTML5, popovers avec CSS3, animations, upload vers Dropbox via authentification Oauth
ALCARA (2 ans - Août 2010 à Septembre 2012)
- Support sur les procédures d’industrialisation des développements pour les projets Usine Retraite (Maven).
- Support et évolutions sur les applications constituant la plateforme d’échange UR (Wicket, Spring).
- Conseil sur les solutions web 2.0, et réalisation d'une application transverse (gestion d'habilitations pour projets et corbeilles/files d'attentes de tâches – workflow de gestion d'anomalies), via solution cliente Cappuccino et services J2EE (Spring, Hibernate, bridge CP2JavaWS).
- Support sur des solutions de content management et de gestion de workflows.
Environnement technique : Eclipse, Maven, Wicket, Velocity, iBatis, Spring, Hibernate, Cappuccino.
CETELEM (6 mois - Mai à Juillet 2010)
Mise en place d’une solution d’intégration continue (Maven, DBUnit, Junit, Hudson, Cobertura), évolutive via point d'entrée unique et fichiers de scénarios évolués, pour tests fonctionnels d'une application de marketing interactif.
Conseil (architecture, best practices) et migration vers J2EE d’une application de vérification de flux vers les nouvelles normes groupe J2EE BNP/Paribas (Utilisation de Antlr pour le parsing de filtres complexes).
Environnement technique : Maven, Eclipse, Hudson, DBUnit, Junit, xstream, BeanUtils, Antlr.
Projet open source CP2JavaWS (2009-2010)
Framework de bridge pour appel de services J2EE de manière transparente depuis une application cliente Cappuccino (version web de l'environnement Cocoa d'Apple, AppKit complet et langage Objective-J, équivalent de l'Objective-C avec runtime javascript).
Approche MDA pour réalisation de vues master/detail et gestion du cycle CRUD automatiques.
Gestion de l'authentification Digest (rfc 2617) et endpoints multiples, authentification Active Directory/Ldap.
Collaboration avec les fondateurs de la société 280 North, qui ont participé au développement initial de WebKit (Safari) et de l'application Google Maps pour iPhone.
MONOPRIX (6 mois - Octobre 2009 à Avril 2010)
Mise en œuvre de l'industrialisation : procédures et organisation (architecture SOA vértiable, intégration continue).
Déploiement du socle Improve Foundations 5 avec outillage Maven (m2Eclipse, Archiva, Sonar, Hudson).
Développement de composants techniques transverses, guides pour la réalisation de briques métiers.
Définition de normes de développement, assistance sur application prototype (best practices).
Environnement technique : IBM RAD 7.5.5, WAS 6, Improve Foundations 5.1.1, Maven, m2Eclipse, Archiva, Sonar, Hudson, Xfire.
Auto-formation à Cocoa (2008) : lecture du livre Cocoa Programming (2003, 1000 pages)
BULL (Novembre 2007)
Animateur de formations EJB et Jonas (également Jboss) pour des clients de Bull.
Environnement technique : Eclipse, J2EE, EJB, Jonas, Jboss
SYSTALIANS/REUNICA (3 ans - Novembre 2006 à Octobre 2009)
- Mise en place d'une solution d'intégration continue pour les briques Usine Retraite (services), via le développement d'un automate de déploiement (basé sur maven) et de plugins Eclipse :
- plugin Maven utilisant les possibilités d'Eclipse 3.3 dès sa sortie (fonctionnalités plus avancées que le plugin m2Eclipse) : filtre du classpath runtime, gestion des cycles et des ambigüités lors de la résolution de versions, switch dépédendance projet ou repository, agrégation de composants services et de configurations (locale, distante) dans un projet Web (et génération du wsdd).
- plugin de création de couche DAO complète basé sur JET (descripteurs de mapping inspirés de ceux d'Hibernate mais orientés mapping objet vers procédures stockées/programmes COBOL, gestion des relations complexes, locking optimiste et identité, programmes d'enchaînement),
- plugin checkstyle avec règles particulières (selon la nature des composants).
- Evolutions d'un framework SOA J2EE (migré depuis framework Smalltalk), avec principes équivalents à Osgi (découverte de plugins de configuration, localisation transparente).
- Support et formation aux nouveaux outils et procédures (cycles de développement et déploiement, normes)
- Etude et prototype MDA (EMF/GMF).
Environnement technique : Eclipse3.3/WTP2.0, SWT, JET, AST, Maven 2 / Maven embedder, Axis, Xstream, JMX, CICS / CTG, EMF/GMF, SoapUI.
SELLERMANIA (3 mois, Septembre à Novembre 2006)
Conseil et accompagnement sur le développement d'une application de pricing en ligne : connexion avec les marketplaces (Amazon, etc.), importation et upload de catalogues de prix.
Environnement technique : JSF Tomahawk, service générique pour tri (via Hibernate) de données de composant table, upload via composant JSF Ajax, WebServices, framework XDI pour import.
SIS (6 mois, Février à Septembre 2006)
Développement d'une application de dématérialisation des appels d’offre, en utilisant le socle Improve Foundation, Struts Layout, Hibernate (approche agile/XP, best practices).
Evolution de web services utilisant le framework XDI.
MUTUALITE FONCTION PUBLIQUE (2 ans - Septembre 2004 à Février 2006)
Chef de projet de l'application intranet OSACA (liquidation manuelle de feuilles de soins) :
- spécifications techniques générales et détaillées,
- implémentation des évolutions réglementaires, support à la MOA.
- Mise en place d’une architecture JCA pour l’accès Cobol via la solution Microfocus Entreprise Server.
- Tests de montée en charge (OpenSTA, JMeter).
- Portage de l’application vers le socle technique Improve Foundations.
Environnement technique : WSAD, Struts Layout, Improve Foundations, Hibernate, Oracle, DB2, MVS.
IMPROVE
Développement d'une extension LIDO (couche de mapping O/R JDO) pour le socle Improve Foundations.
FNAC (5 mois - Avril à Août 2004)
Evolution d’un framework EAI.
Environnement technique: EJB, JMS, Velocity, JUnit, Maven.
ARMEE DE TERRE (Mars à Avril 2004)
Etude sur l'identification des choix techniques de l’Armée de Terre
Panorama des consortiums, normes et standards open source, méthodologie.
EUROSPORT (Février 2004)
Evolution d'une solution de gestion instantanée de flux de publications de résultats sportifs.
Environnement technique: WebSphere, WSAD, JMS/MDB, MQSeries, Biztalk.
MUTUALITE FONCTION PUBLIQUE (6 mois - Juin 2003 à Janvier 2004)
Chef de projet de l'application intranet OSACA (liquidation manuelle de feuilles de soins) :
- spécifications techniques générales et détaillées :étude de la norme B2, conception de l'accès aux services distants (Cobol MVS via DB2Connect, Cobol Unix via Microfocus COPServer), batch d'export pour traitement par EAI.
- encadrement de trois développeurs (best practices), suivi du projet.
Environnement technique : WSAD, Struts, Hibernate, Oracle, DB2, MVS.
SANOFI-SYNTHELABO (5 mois)
Développeur expérimenté sur application web de consolidation de résultats financiers.
Environnement technique: Struts, LIDO 1.4, connecteurs JCA, EJB, JMS/Joram, Oracle, WSAD, Websphere, CVS, PVCS.
EUROP-ASSISTANCE (3 mois) Portail Web B2C (clients Entreprises et Particuliers).
Expert Struts, reprise de l'existant (conseil et refactoring, corrections d'anomalies - système de paiement via SIPS, etc.)
Environnement technique: Struts, Oracle, WSAD.
BCA EXPERTISE (5 mois)
Mise en place d'un socle technique J2EE pour gérer des formulaires XML, avec échange par WebServices
Rédaction de guides d'architecture et formation, supervision du développement d'un prototype.
Environnement technique: Castor XML, Axis, MVC4WS, Struts Layout, JavaMail, SSL, Tomcat, Sybase.
CABLE & WIRELESS (forfait)
Mission de conseil sur Websphere Portal Server, installation et best practices.
Environnement technique: WebSphere Portal Server, Portlet, Java, SSL, IBM HTTP Server, DB2, Secure Way (LDAP).
Ingénieur de Développement, Consultant – Sysdeo
2000 à 2002
CARVANTIS (4 mois)
Réalisation du site B2C
Environnement technique: .NET/C#, ASP Security, SQL Server 2000
MINISTERE DE L’EQUIPEMENT ET DES TRANSPORTS (2 mois)
Consultant sur technologie Struts et rédaction de normes de développement (codage, nommage, etc.)
Environnement technique: Java, Struts, XML, TagLib, Servlet/JSP, Tomcat
CARPLAN (1 mois)
Etude comparative solutions de bridge Java/Com
Environnement technique: Servlets/JSP, J-Integra, Weblogic COM, R-JAX, WebSphere, WebLogic, MTS, Web Application Stress Tool.
THALES (5 mois)
Projet Intranet (notation des fournisseurs cibles)
Développeur Java expérimenté autonome.
Environnement technique: Java (Servlets/JSP), WebSphere, Oracle 8.0.5, LDAP.
ATOS (6 mois)
Portail financier B2B pour Axa
Développeur Java intégré dans une équipe de 50 personnes
Environnement technique: Java, TopLink, Sun Forte, CVS, Jrun, Oracle,Sybase, XML, MQSeries.
Stage, Sysdeo
2000 (3 mois)
Solution de mapping (3 mois) : étude approfondie de Toplink et réalisation d’une couche de mapping objet/relationnel équivalente (Java 2) : gestion de l’ensemble des types de mapping (dont relations nm)
Fichiers descripteurs identiques aux fichiers Toplink, syntaxe de fetch identique (expressions objet – dont anyOf - et combinaison d’expressions)
Gestion de l’identité et de l’optimistic locking (via champ version ou par comparaison de champs - field locking)
Environnement technique: Java, TopLinK.
Stage, SQLI
1999 (3 mois)
eBench : outil de tests de montée en charge basé sur Java 2 et RMI (agents distribués sur plusieurs machines et centralisation des résultats) gérant les cookies, le parsing avancé de formulaires (scénarios scriptables avec informations dynamiques issues de résultat de recherche), la montée en charge progressive
Etude approfondie du protocole HTTP (dont différences http 1.0/1.1)
IHM additionnelle en Swing (console de supervision)
Environnement technique: Java, RMI, Protocole HTTP, Swing.
Technologies
- Architecture SOA, socles techniques (Spring, WO, etc.)
- Cllient web/riche : JSF, DWR, RichFaces, GWT, Cappuccino, WebKit/HTML5, Wicket, Dojo, Struts Layout,
- Client natif : iOS
- Développement de plugins Eclipse (SWT), MDA (EMF/GMF), checkstyle (AST), Antlr
- Intégration continue (maven2, Hudson, Artifactory/Nexus, Sonar), tests (DBUnit, Junit),
- Mapping O/R (Hibernate 3, Toplink, JDO/Lido, EOF),
- JCA, CTG, Microfocus ES, DB2 Connect, connecteurs asynchrones (JMS, MQ)
- Mapping XML/objet (Xstream, Castor), XSL, Web Services (Axis, XFire), REST (JSON/JSONP)
- Authentification Digest et Oauth, Active Directory/Ldap
- Solutions BI/BPM : normes, Activiti, Bonita, Pentaho (Quarz), notions sur ESB (Mule, etc.)
- Notions sur cloud (AppEngine, caches distribués Jboss cache, EH Cache)
Outils : Eclipse 3.x/WTP2, IDEA, WebKit debugger, Firebug, Maven, m2Eclipse, Archiva, Hudson, Sonar, SoapUI, JMeter, Poseidon.
Serveurs/bases : WebSphere, Tomcat, Jboss, WebLogic, WebObjects, Oracle, DB2, Sybase, SQL Server, MySQL, HSQL.
Langages : Java, Objective-C/J, javascript, Smalltalk, C#, C++, C, PHP/LAMP.
Formation
2000
Diplôme d’Ingénieur en Informatique pour l’Industrie – Ecole Polytechnique Tours
1997
DUT Génie informatique et électronique – IUT de Tours
1995
DEUG A Mathématiques - Facultés des Sciences d'Orléans
1993
Baccalauréat C