Ingénieur Logiciel très expérimenté en développement d’applications (entreprises) utilisant Java (1.3-21), JEE (1.4, 5-10) (Facelets, JPA, Services Web (y compris REST), CDI, Bean Validation…), Spring (4-6), Spring Boot (1-3), aussi bien qu’Angular (TS), JS, SQL, NoSQL, DDL, XML/XSL/XPath/XSLT, (X|D)HTML(5) ; + C, C++ (WPF), Node.js, React, Android/Kotlin/Jetpack Compose, etc. Expertise dans planification, analyse, conception, en particulier le développement, dans des examens de code, DDD, TDD (développement piloté par les tests) & profilage (ainsi que dans déploiement, maintenance) ; expertise en gestion de code, de dépendances, de construction, & d’artéfacts, ainsi que dans tests automatisés, couverture de code, analyse statique, CI & CD (intégration & livraison continue) ...
PROJET : Modernisation de l’application de gestion de coupons ((e-)commerce).
• Mis à niveau les logiciels non soutenus (& vulnérables) comme Java 7, Spring 4, Tomcat 7 & PostgreSQL 9 (pilote
PostgreSQL 9.1-901.jdbc4), etc. aux logiciels soutenus (& avec mis-à-jours pour vulnérabilités) : Java 17 (& 21 sur option),
Spring 5.3.31, Tomcat 9.0.83 & PostgreSQL 16 (pilote PostgreSQL 42.6.0), etc.
• Mis à niveau les versions de dépendances, ajoutant des nouvelles dépendances requises & supprimant quelques
dépendances désormais redondantes.
• Rétablis utilisation de tests automatisés commenté dans le code depuis des années & fis possible développement sur la
même machine indépendamment du réseau.
o Corrigeai nombreuses erreurs (problèmes) dans tests automatisés.
• Modifiai les 5 modules & module parent pour compatibilité avec les APIs plus modernes et soutenus.
Un peu plus-détaillé CV de 6 ou 7 pages en anglais est disponible sur demande.• Résolus problèmes de transactions persistance qui sont survenus suite à la mise-à-niveau de versions (y compris ceux liés à
JobRepository & les pas de Spring Batch (sur la base de XML & Java) (en utilisant HibernateTransactionManager dédié)).
• Hackai spring-boot-admin (abandonné avant Spring 5) pour marcher sur Spring 5.
• Ajoutai paramètres --add-opens liées à l'encapsulation forte & requis depuis Java 9 dans configs de bâtiment & exécution.
• Convertis l'appli de type .war à Spring Boot.
• Conteneurisai l'application (avec réplicas) & sa BDD (grappe d'haute disponibilité).
Environnement : Java 17 & 21, Spring 5.3.31, services ReST (sécurisés avec jetons), JPA. SQL, JQL. TestNG. Spring Batch, Spring Boot. Kubernetes, Docker, minikube. Jacoco. Tomcat 9.0.83, PostgreSQL 16. Construction : maven. Scripts shell. SCM : git (gitlab). Méthodologies notables : TDD, Agile, Scrum (PI) ; JIRA. CI/CD : Jenkins. Dépôt : Archiva.
PROJETS : Quelques projets personnels (verityfan.com, anticia.org (y compris un film court-métrage), adazes.com, etc.).
• Les idées, les analyses des besoins, les architectures, les conceptions…
• Développement de la pile complète :
◦ La conception pilotée par le domaine (DDD) avec usage de caractéristiques Java 8+ (comme expressions lambda).
◦ Persistance basée sur NoSQL ainsi que SQL/JPA avec utilisation d’héritage, des associations & parcours de graphe.
◦ Services REST & transactions EJB/JTA (y compris avec JPA) assez avancées (y compris transactions imbriquées).
◦ Utilisation de Queue (JMS @MessageDriven) pour la suppression de la BDD de notification(s) lue(s) par l’utilisateur.
◦ Sécurité (déclarative (annotations, XML, .conf (Apache)) & programmatique) (y compris dans contexte d’e-commerce).
◦ Trait Captcha avec plusieurs variations (y compris d’effets, de polices & de couleurs) (comme 1 mesure contre les bots).
◦ Utilisation de Validation Bean (déclarative & programmatique) à travers les couches.
◦ Utilisation de @CacheResult (JSR-107) pour optimisation quand résultats sont les mêmes pour les mêmes paramètres.
◦ Téléversement (avec PrimeFaces & jQuery) & redimensionnement d'images, y compris validation (taille & dimensions), & verrouillage de fichiers (avec utilisation de l’instruction try-with-resources) ; trait sondage avec délai ralentissant.
◦ Installation & configuration de façade Apache devant Payara (y compris certificat SSL (TLS) & configuration de binding java-logging pour SLF4J). Hébergement de nombreux domaines sur le même serveur (adresse IP).
◦ Géolocalisation : utilisation de module ip2location.com pour montrer des pubs différentes selon la localisation de l’IP.
◦ Conception de site web adaptatif : HTML5 (https://developer.mozilla.org/en-US/docs/Web/API/History_API#Adding_and_modifying_history_entries), JS (héritage… (https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/Inheritance)), CSS3 (+ images SVG (+ feColorMatrix (https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feColorMatrix)), animations GIF).
◦ Développement des applis web monopage (SPA) Angular (TS, etc.) (avec ou sans intégration avec une appli JEE) …
▪ Utilisation de composants d’IU Angular Material (13.*) (e.g., sidenav, tab, toolbar, tree) & composants sur mesure.
◦ Cas de tests automatisés : tests unitaires (y compris via mocks), tests d'intégration, tests de bout à bout (Java & npm) ...
◦ Rapports de couverture de code, analyse statique de code…
Environnement : Java 8 & 11 ; JEE 7 (en peu 8) : Facelets (JSF 2.2), EJB 3.2, JTA 1.2, JAX-RS, JMS 2.0 ; Validation Bean 2.0 ; Spring 5.0.3 ; CDI 1.1 ; JCache ; JPA 2.1… JSON, Schéma JSON, XML. Angular (Material), TypeScript. Node.js (services Foxx). JS, AJAX, jQuery. NoSQL (mégadonnées), SQL. Arquillian 1.3.0, JUnit 5.1.1 & 4.12 (pour Suite (.xsl sur mesure)), quelque TestNG 6.13.1 ; Mockito 2.23.0 ; Spring Boot 2.7. PMD, Cobertura. Payara, ArangoDB. Géo-IP. Babel, webpack. Construction : ant, ivy (quelque maven). SCM : git. Méthodologies notables : DDD, TDD. Dépôt : Nexus.
• Contribuai plusieurs patchs à ip2location qui ont été fusionnés (https://github.com/ip2location/ip2location-java/commits?author=haqer1&since=2023-10-01&until=2023-11-01).
• Développai Log4js (importable ; tests automatisés) : npmjs.com/package/@adazes/log4js (JS (ES5/ES6), Node.js, rollup.js).
• Développai Registry Assistant : github.com/haqer1/registry-assistant (C, C++, .Net, WPF (XAML) ; obfuscation).
• Contribuai un test automatisé, etc. à Selenium pour Java : github.com/SeleniumHQ/selenium/pull/8492 (fusionné).
• Donnai exemple de goog:loggingPrefs en XML : github.com/arquillian/arquillian-extension-drone/commit/b45a (fusionné).
• Commençai un projet comme une idée pour optimisation de taille de CSS auto-généré : github.com/haqer1/optimize-css.
• Fis petites contributions à Node.js : github.com/nodejs/node/commits?author=haqer1 (fusionnées).
• Ouvris un bogue en Angular (avec mon code contournement) : github.com/angular/angular/issues/32102 (confirmé).
• Soumis plusieurs (bogues &) patchs (requêtes de tirage) pour ArangoDB qui ont été fusionnés : comme requêtes de tirage 86, 68 (bogue 67), 70, & 63 pour ArangoDB spring-data, ainsi que RdT 197 pour arangodb-java-driver (+ bogue 178) : https://github.com/arangodb/spring-data/commit/2ebaf84293e7c4e5e00c6baf6ac17a4a15f2d7d6, ...
• Commençai un projet de fourchettte nommé avec plusieurs optimisations additionnelles : https://github.com/haqer1/arangodb-spring-data-rational
• Soumis (un bogue &) une requête de tirage pour EpubCheck qui a été fusionnée (github.com/IDPF/epubcheck/pull/712).
• Contribuai un patch pour Mozilla Translator (github.com/RickieES/moztrans/issues/1).
• Mis rawgit.com/haqer1/miscellaneous-js/master/src/miscellaneous/css/BuggyMediaQueryWorkarounder.js sur GitHub.
• Publiai un simple plugin jQuery sur npmjs.com : www.npmjs.com/package/jquery.form-assistant.
• Contribuai un patch pour améliorer JSF RadioRenderer dans le projet Mojarra (de Sun).
• Soumis un bogue d’implémentation i18n en Java (2002), qui puis rassembla 95 votes sur BDD de bogues SDN (bugs.java.com/bugdatabase/view_bug.do?bug_id=4688797), & fournis un patch pour cela (en 2006), qui fut fusionné & publié (web.archive.org/web/20090228192241/http://java.sun.com/javase/6/webnotes/names.html) avec Java 6.0.
• Soumis un patch (savannah.gnu.org/bugs/?13239) pour GRUB, un bootloader de Linux.
• Soumis des patchs pour XFire (un cadriciel de Services Web, qui est devenu une partie de CXF) : https://web.archive.org/web/20150508030623/, http:/jira.codehaus.org/browse/XFIRE-995
• Soumis une localisation pour la bibliothèque GNU C (glibc), qui a été publié.
• Contribuai plusieurs agencements de clavier pour l'environnement Linux, qui ont été publié.
• Contribuai 2 « paquets de langue » pour Firefox (il y avait espoir pour une localisation officielle) (+1 pour Thunderbird) : https://hg.mozilla.org/l10n-central/crh/
• Initiai & contribuai à plusieurs projets de localisation pour la plate-forme Linux.
• Contribuai plusieurs patchs à ip2location qui ont été fusionnés (https://github.com/ip2location/ip2location-java/commits?author=haqer1&since=2023-10-01&until=2023-11-01).
• Développai Log4js (importable ; tests automatisés) : npmjs.com/package/@adazes/log4js (JS (ES5/ES6), Node.js, rollup.js).
• Développai Registry Assistant : github.com/haqer1/registry-assistant (C, C++, .Net, WPF (XAML) ; obfuscation).
• Contribuai un test automatisé, etc. à Selenium pour Java : github.com/SeleniumHQ/selenium/pull/8492 (fusionné).
• Donnai exemple de goog:loggingPrefs en XML : github.com/arquillian/arquillian-extension-drone/commit/b45a (fusionné).
• Commençai un projet comme une idée pour optimisation de taille de CSS auto-généré : github.com/haqer1/optimize-css.
• Fis petites contributions à Node.js : github.com/nodejs/node/commits?author=haqer1 (fusionnées).
• Ouvris un bogue en Angular (avec mon code contournement) : github.com/angular/angular/issues/32102 (confirmé).
• Soumis plusieurs (bogues &) patchs (requêtes de tirage) pour ArangoDB qui ont été fusionnés : comme requêtes de tirage 86, 68 (bogue 67), 70, & 63 pour ArangoDB spring-data, ainsi que RdT 197 pour arangodb-java-driver (+ bogue 178) : https://github.com/arangodb/spring-data/commit/2ebaf84293e7c4e5e00c6baf6ac17a4a15f2d7d6, ...
• Commençai un projet de fourchettte nommé avec plusieurs optimisations additionnelles : https://github.com/haqer1/arangodb-spring-data-rational
• Soumis (un bogue &) une requête de tirage pour EpubCheck qui a été fusionnée (github.com/IDPF/epubcheck/pull/712).
• Contribuai un patch pour Mozilla Translator (github.com/RickieES/moztrans/issues/1).
• Mis rawgit.com/haqer1/miscellaneous-js/master/src/miscellaneous/css/BuggyMediaQueryWorkarounder.js sur GitHub.
• Publiai un simple plugin jQuery sur npmjs.com : www.npmjs.com/package/jquery.form-assistant.
• Contribuai un patch pour améliorer JSF RadioRenderer dans le projet Mojarra (de Sun).
• Soumis un bogue d’implémentation i18n en Java (2002), qui puis rassembla 95 votes sur BDD de bogues SDN (bugs.java.com/bugdatabase/view_bug.do?bug_id=4688797), & fournis un patch pour cela (en 2006), qui fut fusionné & publié (web.archive.org/web/20090228192241/http://java.sun.com/javase/6/webnotes/names.html) avec Java 6.0.
• Soumis un patch (savannah.gnu.org/bugs/?13239) pour GRUB, un bootloader de Linux.
• Soumis des patchs pour XFire (un cadriciel de Services Web, qui est devenu une partie de CXF) : https://web.archive.org/web/20150508030623/, http:/jira.codehaus.org/browse/XFIRE-995
• Soumis une localisation pour la bibliothèque GNU C (glibc), qui a été publié.
• Contribuai plusieurs agencements de clavier pour l'environnement Linux, qui ont été publié.
• Contribuai 2 « paquets de langue » pour Firefox (il y avait espoir pour une localisation officielle) (+1 pour Thunderbird) : https://hg.mozilla.org/l10n-central/crh/
• Initiai & contribuai à plusieurs projets de localisation pour la plate-forme Linux.
Projets : Image Assistant, Blend In, & Request Assistant (modules Mozilla).
• Image Assistant (https://addons.mozilla.org/en-US/firefox/addon/image-assistant/) (code C, C++, JS, etc. de haute qualité qui marche sans mise-à-jours sur Firefox depuis des années) :
◦ Mise-à-jour pour soutenir (& courir sur) Opera (déc. 2023 (C, C++ 17 & 20 : <thread>, <chrono>, <source_location>)) : en attente de passage en revue par Opera.
◦ Majorations comme configurabilité de dossier de téléchargement, l’appli visionneur d'images, & compatibilité avec des standards WebExtensions (implémenté, en particulier, en utilisant C & C++ 14 : <(forward_)list>, <map>, <stdexcept>, <regex>, <memory>, <string(_view)>, <experimental/filesystem>, <fstream> ...) …
◦ Correctifs comme addition de support pour (nouveau) attribut HTML5 (img) srcset, & URLs protocole-indépendants.
◦ Autres améliorations notables comme addition de localisation française, indépendance d'intérieurs de Firefox (53+) …
• Blend In (https://addons.mozilla.org/en-US/firefox/addon/blend-in/) :
◦ Majorations comme compatibilité avec des standards WebExtensions & une nouvelle page de ressource locale (HTML5) affichant des paramètres de spoofing du navigateur (une page tierce n'est plus requise).
◦ Correctifs comme l’inclusion de la sous-appli Lightning dans la valeur User-Agent (sur les installations non-Windows de Thunderbird avec la suppression de thunderfoxing) pour fusionner mieux avec la plupart des installations …
• Request Assistant (https://addons.mozilla.org/en-US/firefox/addon/request-assistant/) :
◦ Sortie initiale : actuellement enregistre tous les URLs accédés par Firefox ou Thunderbird (dans la console de l'appli (& optionnellement dans le flux de sortie standard)), que la requête soit explicitement faite par l'utilisateur ou faite automatiquement par l'appli elle-même.
Environnement : C (extern "C", __declspec(dllexport), NSPR…), C++ OO (C++17 ; XPCOM) : Windows, Linux ; OOJS (y compris encapsulation & héritage (classe)), clones structurés (HTML5)/JSON ; DOJO ; EDI : Eclipse (C/C++, JS & Web), Visual Studio 17 (y compris débogage du composant natif en se connectant au processus Firefox (DE)), KDevelop ; gdb; dumpbin ; SCM : git, gitolite ; (g)vi(m). Construction : ant & ivy (publication avec signature GPG) ; Docker, Kubernetes (+ testing de diverses versions) ; VirtualBox (utilisé pour le composant natif pour Linux 32-bits). Référentiel : Nexus.
PROJETS : Un livrel linguistique & un livrel de poésie.
• Livrel linguistique (http://tilde-birlik.sourceforge.net/dosyeler/resat/kdp/v1.1.2.mobi) :
◦ Un livrel dans format .mobi avec mise en page fixe (y compris l'idée & la conception de l'image de couverture).
• Livrel de poésie (https://www.kobo.com/tr/tr/ebook/ulkulerim, https://itunes.apple.com/us/book/id1194879637) :
◦ Un livrel ré-écoulable EPUB3 (y compris l'idée & la conception de l'image de couverture) avec Table des Matières, Repères, Page-liste ; + 1 animation CSS & 2 JS ; + 2 fontes embarqués (sous licences source-libre UFL & OFL).
◦ Via XSLT & XPath convertis document NCX de navigation d'EPUB2 (XML) à nav.xhtml d’EPUB3 (basé sur HTML5).
◦ Fonctionnalités de conception adaptative utilisées (basée sur taille du viewport) pour une meilleure expérience sur différents appareils utilisant diverses applications : tailles (fontes, images), position d’images, mise en page du texte …
◦ Assurai qu'il n'y a pas des (HTML5, CSS3, etc.) erreurs ou des avertissements durant la (auto-)validation du livrel à l'aide de l'appli EpubCheck.
Environnement : EPUB 3 (& 2) ; XSLT & XPath ; HTML5 ; OOJS ; CSS3 ; SCM : git ; (g)vi(m) ; scripts shell. Graphiques : gimp (& un peu de compiz). Construction : ant & ivy (publication avec signature GPG), patch, sed.
PROJETS : Développement de nouveaux services pour Entreprise de Planification de Vol.
• Configurai le serveur SonarQube partagé pour l'analyse statique du code, y compris les plugins FindBugs, PMD, Cobertura, & Checkstyle, & les règles d'entreprise personnalisées. Fournissais les informations sur le wiki sur la façon de reproduire les règles de l'entreprise sur les installations locales de SonarQube.
• Configurai les modules de services déployés sur Tomcat dans un environnement en cluster sur le nuage pour utiliser JTA (XA) pour les transactions distribuées (DTP ; commit en 2 phases pour les services utilisant JDBC (JPA) & JMS dans un environnement distribué).
• Implémentai le niveau intermédiaire pour le calcul du plan de vol (dans le service de vol JEE utilisant REST), y compris les objets de modèle générés à partir de Schéma JSON, ainsi que ceux codés à la main, avec l'héritage utilisé pour réduire la duplication de code entre les objets modèles utilisés pour la couche de présentation (client riche C#), & ceux utilisés pour interagir avec la couche d'infrastructure (JEE). Utilisai JAXB pour JSON-à-Java (un)marshalling automatique, & API Validation Bean.
Environnement : JEE 7 : JAX-RS (Jersey), Validation Bean, JAXB ; Spring 4, Spring Boot ; Atomikos ; log4j. CoreOS, Docker, fleet, etcd ; Vagrant ; VirtualBox ; nginx ; AWS. Vue.js. JSON, Schéma JSON, XML. Logstash. SonarQube (FindBugs, PMD ; Cobertura…). PostgreSQL. Construction : maven ; Bamboo ; quelque ant. SCM : p4. Référentiel : Archiva. Méthodologies notables : Agile (Scrum), TDD.
PROJETS : Multiples améliorations & corrections de bogues dans les applications de provisionnement.
• Jouai un rôle essentiel dans la mise en œuvre de code personnalisé impliquant HttpClient personnalisé, une implémentation de HttpRequestRetryHandler, etc. pour configurer les paramètres de connexion d’Apache Camel tels que le délai d'attente de connexion, le délai d'attente de socket, & les tentatives maximales pour résoudre un bogue critique impliquant une application qui ne répondait pas (parce que tous les fils disponibles dans le pool furent en attente) lorsque les dépendances en aval étaient inaccessibles pour quelque raison que ce soit.
• Optimisai paramètres de pool de connexion c3p0 tels que maxIdleTime, & maxIdleTimeExcessConnections (ainsi que la taille initiale, minimale & maximale du pool), & sa définition de Spring Bean, & utilisant la plus fine journalisation vérifiai que les paramètres furent en vigueur.
• Implémentai les fichiers .ldif pour mettre à jour LDAP pour utiliser les FQDNs au lieu des IPs pour les données de configuration de WS (services web) (ldapsearch, ldapdelete, ldapadd).
• Ajoutai NDC & des métriques de durée pour les demandes entrantes (en utilisant un binding personnalisé) dans 1 application Apache Camel desservant les données en utilisant services REST (les mesures de durée ensuite étaient utilisées pour produire des rapports de performance par l'usage de Splunk).
Environnement : JEE 5 : JAX-WS & Axis, Apache Camel (REST) ; WebLogic 11g (10.3.6) ; cadriciel Spring ; log4j. Groovy. LDAP, Apache Directory Studio. JSON, XML. Jenkins. Splunk. Tibco ESB. Construction : ant ; quelque maven, & ivy. SCM : svn. Méthodologie notable : Agile (Scrum).
PROJETS : Conduisis ou participai à la mise en œuvre de multiples nouvelles fonctionnalités, améliorations & corrections de bogues dans les applis de provisionnement en tant que développeur full-stack (de la pile complète.
• Menai l’implémentation de la fonctionnalité de gestion d’appareil (verrouillage d'itinérance ; d'abord pour iPhone) : développai un service JAX-RS & ses clients AJAX, ainsi qu'un plugin jQuery pour la détection cross-navigateur de changement de champ (saisie, flèches, coupe-ou-colle, événements de menu).
• Implémentai l'appli standalone de migrateur de répéteurs avec les clients JAX-WS pour effectuer l’approvisionnement ...
• Prototypai un système pour une gestion optimale du code, de dépendances, de la construction & des artefacts intégrant Jenkins (intégration continue), Nexus (référentiel), Maven, & Ivy, qui permet une interdépendance pour les projets basés sur Maven & ceux basés sur Ivy, & supporte les signatures numériques.
• Implémentai un prototype d'une couche de domaine reconçue pour l'appli de provisionnement principale (en utilisant un développement axé sur le domaine avec JPA 2, org.springframework.test, JUnit, TestNG, gestion de dépendances basée sur Ivy, ainsi que des tests d'unité & d'intégration).
Environnement : JEE 6 : JAX-RS, JAX-WS & Axis, JPA (1-2), Struts (1-2), JEXL ; log4j ; JBoss 5.1. AJAX, JSON, jQuery, DOJO. Construction : ant (avec ivy), quelque maven. SCM : cvs, svn. Méthodologies notables : SDLC, Agile ; DDD, TDD.
PROJETS : Menai l’implémentation d'un outil de soins de contenu prémium interne, impliquant des commandes, l'historique, des remboursements, etc. en tant que développeur full-stack (de la pile complète).
• À l'aide de JSON & AJAX, mis en œuvre l'onglet de synthèse, avec les sections d’informations du client, de l'activité récente & d'historique des transactions.
• Mis en œuvre une mise en page & des vues de Tiles ; utilisai plugins jQuery tablesorter & quicksearch, & mis en œuvre un groupeur de table en JS.
• Mis en œuvre des clients de service (& utilisai Spring MVC) pour l'intégration avec Real Networks ; utilisai les fichiers de balise dans les vues.
Environnement : J2EE : Spring (IoC & MVC) ; log4j ; WAS 6.1. AJAX, JSON, jQuery, DOJO (quelque i18n). Construction : ant. SCM : cvs.
PROJETS : Menai l’implémentation d'un système interne de gestion de commandes impliquant des sites, des échanges, des appareils, des commandes, etc. en tant que meneur d'équipe & développeur full-stack (de la pile complète).
• Améliorai le courant squelette d'application GWT de l'équipe de développement agile, qu’était basée sur Spring JDBC pour la persistance, d’être basée sur JPA (Hibernate), avec l'injection de Manager d’Entités & les transactions basées sur Spring.
• Implémentai service de Commande, Commande DAO & IU basée sur GXT pour la recherche de commandes, la recherche des appareils & l'entrée & la mise à jour de commandes.
• Implémentai le bus d'événements basé sur GWT pour une communication faiblement couplée entre les composants.
Environnement : JEE : JPA & EJB 3 (Hibernate), Spring (JPA & transactions) ; GWT, GXT ; log4j ; Tomcat 6. AJAX. BDD (Oracle) : SQL, JQL, DDL. Construction : ant. SCM : svn. Méthodologie notable : Agile.
PROJETS : Participai à l’implémentation de multiples nouvelles fonctionnalités (telles que la fonctionnalité Site Rep Web, Managers Courriel, Downline & Client pour Business Suite, rapports ACH & Remboursement, Silpada on the Scene, Commutateur de Localisation), & diverses améliorations (e.g., alerte de délai d’inactivité), & corrections de bogues…
• Implémentai des formulaires utilisant Facelets, beans gérés JSF & règles de navigation, ainsi que des convertisseurs & validateurs JSF variés.
• Implémentai DDL, des entités, des beans Stateless Session, ORM (de procédures stockées à objets Java), + classes d’utilité, un objet JS pour supplanter rich:inplaceInput…
• Améliorai réutilisation du code pour les composants fréquemment utilisés : templates Facelets (RichFaces) pour dialogues d'aide & messages JSF…
Environnement : JEE : JSF 1.2, Facelets 1.1, RichFaces 3.3; JPA & EJB 3 (Hibernate) ; JUnit ; log4j ; JBoss 4.2 EAP. JavaScript, jQuery, AJAX. BDD (SQL Server) : SQL, DDL, procédures stockées (alias PL/SQL). Python.
PROJETS/TECHNOLOGIES : Utilisai des nombreuses technologies sur des multiples projets (résumés sur la représentation textuelle de grille ci-dessous) ...
Technologies : 1) JAXB 2) XPath 3) StAX 4) JPA[1] 5) JSF 6) Facelets 7) JSTL 8) Taglibs 9) Struts 10) Tiles 11) Spring 12) JavaMail 13) AJAX 14) jQuery 15) JSON 16) Perl
Projets :
ford.ca (1-3, 7-13)
Ford Truck US (1, 14)
AMC (5-7, 13-14)
gobeyond (7, 9, 13)
growing strong[2] (4, 7, 9-12, 14)
toolbox (16)
Welch Allyn (4, 8, 11)
[1] Hibernate, TopLink, OpenJPA.
[2] Aussi, implémentai balisage WebTrends.
Environnement : Java (JEE/J2EE) : JSF, Facelets, Struts, Tiles, Stripes, JSP, JSTL, taglibs ; DAOs, services ; Spring IoC & JDBC ; JPA (Hibernate, TopLink, OpenJPA) ; HSQLDB ; StAX, JAXB 2, XPath ; log4j. Tests unitaires : JUnit 4 ; DbUnit. (X|D)HTML; JavaScript, AJAX, jQuery, JSON. XML, Schéma XML, DTD. Perl. BDD (SQL Server, Oracle) : SQL, procédures stockées (alias PL/SQL). Construction, gestion de projet, & déploiement : ant, maven 2, svn, scripts shell. Serveurs : Tomcat 5.5, WebLogic 8.1.
PROJET NOUVEAU : IdM Binding XML (pour persister des informations sur les tickets dans le BDD). Refactorisation majeure : Gérant de Requête CDM, & quelque de ses dépendances. MAINTENANCE : Rivermine.
• Implémentai un module basé sur JAXB (1 & 2) pour la persistance des données dans BDD en utilisant des objets Java liés à XML & (un)marshalling.
• Améliorai application Web CDM-requête-manager basée sur JSF ; maintenais certaines applications basées sur JSP.
• Refactorisai des objets de requête de flux de travail, & les classes d’utilité : e.g., raccourcis une classe d'utilité par ≈ 50%.
• Partageai connaissance sur comment faire procédures stockées & les invoquer depuis Oracle TOAD & Java.
Environnement : J2EE : JAXB 1 & 2, JSP, JSF, Services Web (axis) ; log4j. BDD : SQL, PL/SQL (Oracle). Outils particuliers : BMC ESS, CDM Console, CDM Studio. Méthodologie notable : Programmation en binôme.
PROJETS NOUVEAUX : Service Web Humana de Pricing de Médicament. MAINTENANCE : Couverture de Médicaments ; Membre (Remboursements, Éligibilité, Déductible) ; Pré-autorisation ; Calcul de l'Utilisation Ndc ; Activation Rapide.
• Implémentai un module générique de service de tarification, & une façade WS basée sur XFire (avec WS-Security (UsernameToken (authentification par jeton du nom d'utilisateur))) ;
• Utilisai le cadriciel Spring pour l'Injection de Dépendance (à la fois déclaratif & runtime).
• Implémentai & utilisai dans le nouveau Service Web : des entités & DAOs basées sur Hibernate3 ; un module générique d'statut de requête basé sur des types d’énumération d’Apache Commons (Success, ClientError…, ServerError…) …
Environnement : J2EE : Services Web (Axis, XFire ; JAXB 1/2 ; JAX-WS ; SOAP 1.1/1.2 ; WS-Security, WS-Addressing) ; Spring ; Hibernate 2/3 ; clients EJB ; clients adaptateur de ressources ; CICS mainframe ; log4j ; sûreté de thread, multifil ; Tapestry, JSP, Servlets ; particularités Java 5 sur 1.4. BDD : SQL (DB2). SoapUI. Gestion de projet : mvn 1/2. Méthodologie notable : TDD.
PROJETS Nouveaux : TDT, RDT (Radiology Desktop) Threading, Intégration de PowerScribe (tierce partie) avec RDT, Intégration de flux de données EMR, Réimplémentation du module d'impression Radiologie. Améliorations : Projet d’Actualisation de RDT, Marquage-Page RDT…
• Implémentai une bibliothèque d'observateurs de composants & une bibliothèque de pool de threads basée sur Java-1.4 pour traitement multifil sûr.
• Intégrai une application tierce partie en utilisant C, JNI[1][2][3] & ActiveX (y compris intégration de fenêtre native en appli Java).
• Écris 1 module générique pour l'intégration d'applis natives, y compris l'intégration de fenêtres, avec RDT basée sur Swing.
[1] https://docs.oracle.com/en/java/javase/17/docs/specs/jni/index.html
[2] https://docs.oracle.com/en/java/javase/17/docs/specs/jni/types.html
[3] https://docs.oracle.com/en/java/javase/17/docs/specs/jni/functions.html
Environnement : J2EE : JSP, Servlets, JSTL, bibliothèques de balises, DAOs. J2SE : Swing, AWT ; multifil, JNI… ANSI C & C++, Win32, MFC, ATL/COM/ActiveX, Automation… BDD : SQL, CCL (intergiciel de type SQL) ; un peu : PL/SQL, HL7.
- anglais
- turc
- russe
- français