Depuis près de 16 ans, je suis plus que passionné par la programmation et tout ce qui touche à l'informatique. J'aime être confronté à de nouvelles problématiques, afin de chercher la meilleure solution pour les résoudre.
Analyse précise du besoin avec l’équipe Produit, et conception de diagrammes UML.
Développement et maintenance évolutive et corrective des briques logicielles.
Écriture des tests unitaires, d’intégration, et participation active à l’élaboration des tests E2E, avec l’équipe QA.
Participation au processus de mise en production avec l’équipe Run
Support interne, afin de venir en aide au service Support.
Monitoring de l'application et intervention lorsque nécessaire
Rédaction de documentation
Migration vers une architecture de type « micro-frontends »:
Comparaison des différentes technologies disponibles pour scinder notre « Legacy » en plusieurs applications indépendantes, dans le but d’accélérer notre processus de développement. Après confrontation des différents POC proposés par les ingénieurs, nous avons choisi de retenir la solution que j'ai préconisé: SingleSpa.
Création d’une nouvelle arborescence, et du système de construction/déploiement des différents micro-frontends.
Élaboration de diagrammes de la nouvelle architecture.
Réflexion sur les différentes stratégies possibles pour effectuer la migration (méthode additive, soustractive).
Mise en place du nouveau design système (basé sur Storybook).
Migration des 2 premiers microfrontends, en démontrant à l'équipe la marche à suivre afin d'appliquer la méthode soustractive.
Mise en place d’un outil de tracking (mouvements souris, keylogger, etc) côté frontend afin de permettre au support d’aider les clients en découvrant facilement les bugs, et à optimiser globalement l’UX de l’application.
Mise en place du workflow « npm link » afin de faire gagner un temps précieux à l’équipe: éviter de perdre 30 minutes à reconstruire, tester, publier sur un registry privé une nouvelle version de chaque dépendance à chaque fois que quelqu’un souhaitait changer une ligne de code, afin de voir le changement répercuté à l'écran.
Création d’une façade permettant de simuler les fonctionnalités qui n’existent plus dans les navigateurs modernes (parseur de selecteurs XPATH, diverses anciennes fonctionnalités non W3C compliant, navigation/communication entre les très nombreuses iframes)
Suppression et/ou remplacement des fonctionnalités ActiveX par des modules réécrits à partir des fonctionnalités récentes des navigateurs.
Écriture d’un logger permettant d’enregistrer la séquence précise dans laquelle sont appelées certaines fonctions de requêtage XPATH, et sont chargés les fichiers du portail d’application afin de s’assurer de bien charger correctement l'application.
Comparaison de différentes technologies backend disponibles afin de ré-implémenter le monolithe existant sous la forme de 3 applications clientes (Particuliers, Entreprises, Agriculteurs) d’une API centrale commune, finalement nous avons adopté HapiJS pour les 4 applications.
Création d’un modèle d’application (arborescence, script de build, styles communs, …) servant de base aux 3 applications clientes.
Mise en place de CI/CD via Gitlab et GitlabCI dans des conteneurs Docker, construction des différents containers de l’application et déploiement.
Développements de diverses briques logicielles (écrans affichant le solde bancaire, système de transaction bancaires), écriture de tests unitaires.
Formation des nouveaux développeurs aux différents processus mis en place, et aux bonnes pratiques.
Écriture de scripts de migration de MySQL vers MongoDB
Analyse, développement et maintenance corrective et évolutive sur diverses applications de gestion internes à l’école:
Fiches suivi des étudiants/doctorants
Divers autres listings et formulaires de gestion de l'école.
Développement d’une webapp de préinscription des étudiants:
Mise en place d’une application de type formulaire multi-étapes étant constitué de nombreux champs conditionnels.
Traduction de l’application en 6 langues
Système de paiement en ligne des frais de scolarité
Création d’un système d’upload de pièces jointes à fournir par les futurs étudiants pouvant varier selon de nombreux critères.
Création d’une webapp de type carnet d’adresse pour le département des Relations Internationales:
Écriture d’un script en PL/SQL permettant d’extraire les données de l’ensemble des partenaires de l’école, puis d’utiliser l’API Google Maps afin de les géolocaliser.
Affichage de plusieurs milliers de marqueurs sur une carte Google Maps regroupés sous forme de clusters
Mise en place du mode édition de ces marqueurs dans un formulaire affiché directement dans chaque infobulle de chaque marqueur sur la carte.