hamza.benjannet .md EN
Filtré par

Hamza BEN JANNET

Architecte Solutions · Lead Developer Fullstack
Node.js · React · Cloud · EAM IBM Maximo · IA générative

📍 Puteaux, Île-de-France · ✉️ contact@hamzabenjannet.me · LinkedIn · GitHub

Profil

Architecte Solutions et Lead Fullstack, j'ai 10 ans d'expérience sur des plateformes industrielles et cloud natives : recharge de véhicules électriques, GMAO, maintenance industrielle mobile. Ma spécialité principale est la modernisation d'IBM Maximo, de la 7.6 vers Maximo Application Suite 9 (MAS 9). Je conçois aussi des architectures microservices en NestJS et Node.js, et j'intègre l'IA générative (LLM, RAG, Qdrant).

J'interviens de bout en bout : conception de l'architecture, migration des données, automatisation des flux, puis déploiement sur une infrastructure conteneurisée (OpenShift, Kubernetes). Côté équipe, j'assure le mentoring, l'onboarding et le leadership technique.

Domaines d'expertise

Architecture microservices EAM / IBM Maximo (7.6, MAS 9) Cloud native (AWS, GCP, Azure)
Node.js / NestJS / React DevOps / CI-CD / OpenShift IA générative / LLM / RAG
Migration de données TDD / Clean Architecture Leadership technique / Mentoring

Compétences techniques

Domaine Technologies
Frontend ReactJS 19 Next.js Angular 10+ TypeScript Redux Tailwind CSS ShadCN Bootstrap Material UI HTML5 CSS3
Backend Node.js NestJS ExpressJS LoopBack Python FastAPI Django PHP Laravel CodeIgniter Java
Architecture Microservices Event-Driven DDD Clean Architecture Hexagonale Serverless SDK / plugins
Cloud AWS S3 SNS SQS Lambda Secrets Manager CloudWatch GCP Cloud Run Cloud Functions Cloud SQL GPU Azure OVH
DevOps / CI-CD Docker Kubernetes OpenShift GitHub Actions Jenkins Nginx Terraform
Bases de données PostgreSQL MySQL MongoDB Redis SQLite Qdrant DBeaver
Qualité & performance TDD Jest Playwright RTL ELK Stack Netdata Grafana OWASP Swagger / OpenAPI
Frameworks & outils TypeORM Mongoose Sequelize Socket.io RabbitMQ MQTT Node-RED N8N Maximo 7.6 MAS 9 Talend
IA & machine learning Ollama LocalAI Open WebUI OpenAI API RAG Qdrant Llama
Méthodologie Scrum Jira ClickUp Trello Software Craftsmanship Mentoring Onboarding
Versioning & OS Git GitHub GitLab SVN Linux Windows macOS
Conception & docs StarUML Draw.io API REST API SOAP Confluence Markdown

Expériences professionnelles

SNCF · Développeur EAM IBM Maximo

Juin 2026 → aujourd'hui · France

Migration d'IBM Maximo 7.6 vers MAS 9, automatisation des flux de données, personnalisation des IHM et supervision de l'infrastructure OpenShift.

Contexte

La GMAO (gestion de maintenance assistée par ordinateur) repose sur IBM Maximo 7.6. Ma mission accompagne la bascule vers MAS 9, conteneurisé sur Red Hat OpenShift. Le périmètre couvre la reprise des données historiques, les évolutions fonctionnelles des écrans et la tenue en charge de la nouvelle plateforme.

Réalisations

  • Conception et automatisation des flux de reprise de données entre Maximo 7.6 et MAS 9.
  • Jobs Talend d'extraction des données source vers Amazon S3, puis chargement par les services d'entreprise MIF et leurs endpoints, déclenchés par des crontasks.
  • Développement d'Automation Scripts (Jython, JavaScript) pour enrichir la logique métier de MAS 9.
  • Personnalisation des IHM dans Application Designer selon les standards opérationnels SNCF, avec gestion des droits par sigoptions.
  • Analyse d'anomalies sur des canaux de publication sortants (valeurs incorrectes transmises aux systèmes consommateurs).
  • Installation et dépannage de MAS 9 sur un cluster OpenShift managé (ROSA sur AWS).
  • Travail de performance : surveillance des files JMS, dimensionnement des ressources OpenShift, optimisation des index en base.
  • Synchronisation de données via MIF et API REST.

Architecture du flux de reprise

  1. Extraction : jobs Talend sur la base Maximo 7.6, export vers S3.
  2. Chargement : services d'entreprise MIF exposés comme endpoints, appelés par des crontasks planifiées.
  3. Contrôle : supervision des files JMS et des logs des pods OpenShift pour repérer rejets et goulots d'étranglement.

Stack

IBM Maximo MAS 9 Maximo 7.6 OpenShift ROSA AWS S3 MIF Talend Automation Scripts Jython JavaScript Application Designer JMS API REST

WEBRIT Cloud · Architecte Cloud et IA

Janv. 2026 → Juin 2026 · France · 6 mois

Conception d'une plateforme de cloud privé éco-responsable qui réunit LLM, suite collaborative, automatisation métier et ERP sur une infrastructure GPU GCP.

Contexte

L'objectif était d'offrir l'équivalent d'une suite SaaS complète (IA, bureautique, ERP, automatisation) hébergée en cloud privé sur GCP. La plateforme fait tourner plus de 25 services conteneurisés derrière un point d'entrée unique, sous le domaine webrit.cloud.

Réalisations

  • Déploiement et benchmarking de LLM sur infrastructure GPU privée (Ollama, LocalAI), avec recherche vectorielle Qdrant pour le RAG.
  • Transcription audio par Whisper intégrée à la plateforme.
  • Intégration d'une suite collaborative unifiée : Nextcloud, OnlyOffice et visioconférence.
  • Pipelines ETL et workflows métier augmentés par IA avec N8N.
  • Mise en service d'Odoo 17 (ERP open source) derrière reverse proxy Apache : WebSockets, contenu mixte, bundles d'assets et filestore.
  • Accès distant par navigateur (noVNC) via reverse proxy WebSocket.
  • Authentification e-mail du domaine : DKIM, DMARC, BIMI.
  • Architecture Eco-Compute pour réduire l'empreinte énergétique.
  • IaC Terraform, CI/CD GitHub Actions, conteneurisation Docker et Kubernetes sur nœuds GPU GCP (Tesla T4).

Architecture

  • Couche IA : Ollama et LocalAI sur GPU Tesla T4, Qdrant pour l'indexation vectorielle des documents.
  • Couche métier : N8N orchestre les workflows entre les LLM, Nextcloud, Odoo et les sources externes.
  • Couche d'accès : reverse proxy Apache avec TLS.
  • Observabilité : Grafana et Netdata.

Stack

Ollama LocalAI Qdrant Whisper N8N Docker Kubernetes GCP Tesla T4 Nextcloud OnlyOffice Odoo Apache Terraform GitHub Actions Grafana Netdata

TotalEnergies · Lead Developer Expert et Architecte

Juil. 2024 → Mars 2026 · France · 1 an 9 mois

Écosystème de microservices cloud natifs pour la gestion en temps réel des infrastructures de recharge de véhicules électriques.

Contexte

Le backend historique reposait sur des monolithes PHP. La cible était une plateforme event-driven qui traite les sessions de recharge en temps réel. Trois équipes produit consommaient les APIs pendant la migration, d'où une stratégie de versionnement et de rétrocompatibilité.

Réalisations

  • Migration des monolithes PHP vers une architecture NestJS/TypeScript event-driven, avec ownership de bout en bout, du design à la mise en production.
  • Conception d'APIs REST versionnées consommées par 3 équipes produit ; stratégie documentée de rétrocompatibilité et de dépréciation.
  • Frontend ReactJS 19 en autonomie : parcours UX complexes, design system Tailwind/ShadCN, tests Playwright.
  • TDD avec Jest sur les services critiques.
  • Monitoring avec la stack ELK pour détecter et diagnostiquer les incidents de production.
  • Onboarding de 5 développeurs, animation des cérémonies Agile (Daily, Sprint Review, Rétrospective), collaboration directe avec PM, PO et Design.

Architecture

  • Services : NestJS 10 sur Node.js, communication par événements via RabbitMQ.
  • Persistance : MongoDB, PostgreSQL, MySQL et Redis.
  • Cloud : AWS (S3, Lambda, Secrets Manager), Firebase ; conteneurs Docker orchestrés par Kubernetes.
  • Livraison : pipelines GitHub Actions, contrats d'API versionnés.

Résultats

  • -25 % d'incidents en production
  • +40 % de performance sur le traitement des sessions de recharge
  • 85 % de couverture de tests sur les services critiques

Stack

NestJS 10 Node.js TypeScript RabbitMQ MongoDB Redis PostgreSQL MySQL Docker Kubernetes AWS S3 Lambda Secrets Manager Firebase ReactJS 19 Tailwind CSS ShadCN Playwright Jest GitHub Actions ELK Stack

iMaxeam (Relenfeize) · Lead Software Engineer

Oct. 2018 → Mai 2024 · Canada / Tunisie · 5 ans 8 mois

Ownership complète du cycle de vie de MAXapps, application mobile pour IBM Maximo : refonte architecturale, migration de Cordova vers React Native/Expo, intégration chez les clients finaux.

Contexte

MAXapps permet aux techniciens terrain de traiter leurs ordres de travail Maximo depuis un mobile. Le produit est déployé chez des clients industriels où la disponibilité est critique. La version d'origine reposait sur Cordova.

Réalisations

  • Conception du SDK MAXapps en architecture hexagonale : modules plug-and-play configurables par JSON, dont dépendent d'autres équipes.
  • Migration de Cordova vers React Native/Expo, avec suivi cartographique en temps réel (Live Map Tracking) via Socket.io.
  • Exposition d'APIs IBM Maximo complexes via MIF ; automatisation des structures d'objets métier (Work Orders, Assets).
  • Conception de MXlogger, solution de collecte de logs et d'alertes proactives comparable à Sentry.
  • Projet pilote IoT : flux temps réel capteurs → MQTT → Node.js → MongoDB, avec génération automatique d'ordres de travail au franchissement de seuils.
  • Infrastructure critique : installation d'IBM Maximo via Installation Manager, déploiement sur WebSphere (WAS), gestion du cloud AWS.

Architecture du SDK MAXapps

  • Noyau : logique métier indépendante du framework et de la source de données (ports).
  • Adaptateurs : connecteurs Maximo (MIF) et composants d'interface.
  • Configuration : chaque module se déclare et se paramètre en JSON, et chaque client reçoit une application adaptée par simple configuration.

Résultats

  • -30 % de temps de traitement des ordres de travail
  • 99,9 % de disponibilité en environnement industriel critique

Stack

Node.js Java React Native Expo TypeScript Socket.io Maximo 7.6 MIF WebSphere MongoDB MySQL RabbitMQ MQTT Mosquitto AWS Jenkins Appium Jest

Branper · Directeur Technique (CTO)

Mars 2017 → Sept. 2018 · Tunisie · 1 an 10 mois

Plateforme SaaS de social media monitoring et d'enquêtes intelligentes : analyse de données non structurées augmentée par LLM.

Contexte

Branper collecte et analyse des contenus publiés sur les réseaux sociaux. Ces données sont volumineuses et non structurées ; la plateforme automatise donc la chaîne, de la collecte jusqu'aux tableaux de bord.

Réalisations

  • Architecture multi-stack (Python, Node.js, PHP) pour le traitement NLP via des modèles LLM (GPT, Ollama).
  • Refonte des dashboards analytiques en Vue.js, gestion d'état complexe avec Redux Toolkit.
  • Data scraping et automatisation : bots Selenium, pipelines ETL et workflows N8N.
  • Infrastructure hybride AWS, Azure et GCP ; RabbitMQ, Redis, Docker, Jenkins.
  • Recrutement, formation et encadrement de l'équipe technique ; pilotage de la roadmap produit.

Chaîne de traitement

  1. Collecte : bots Selenium et workflows N8N.
  2. Analyse : services Python (Django, FastAPI) pour le traitement NLP.
  3. Restitution : dashboards analytiques Vue.js, données servies depuis MongoDB et MySQL.

Résultats

  • 5x plus de données sociales traitées en temps réel
  • 80 % des processus de collecte automatisés

Stack

Ollama GPT Python Django FastAPI Selenium Next.js ReactJS Redux Toolkit Node.js MongoDB MySQL Redis RabbitMQ AWS Azure GCP Docker Jenkins N8N

Visacom · Chef de Projet

Janv. 2016 → Fév. 2017 · Suisse / Tunisie · 1 an 2 mois

Marketplace Dealndeal et plateforme e-learning Edidact.ch.

Réalisations

  • Architecture WebRTC (Jitsi Meet) pour la visioconférence à grande échelle ; messagerie temps réel sécurisée.
  • Développement Node.js et Vue.js.
  • Moteur de web scraping (Selenium, Cheerio) pour l'agrégation de données et la veille concurrentielle.

Résultats

  • 500 utilisateurs quotidiens à J+1

Stack

ReactJS Jitsi Meet WebRTC Node.js Express.js PHP CodeIgniter MongoDB MySQL Selenium Cheerio Jenkins Apache

Projets personnels

Agent IA d'automatisation du poste de travail

Système d'automatisation piloté par N8N. Le LLM appelle des outils via MCP (Model Context Protocol). LLaVA analyse les captures d'écran, YOLO détecte les éléments d'interface et Qdrant stocke les embeddings.

N8N MCP LLaVA YOLO Qdrant

Assistant e-mail IA

Assistant qui classe les e-mails de recrutement et rédige des réponses, propulsé par un modèle local llama3.1:8b.

Ollama Llama 3.1

Console de notifications Web Push

Console navigateur reliée à N8N pour envoyer des notifications Web Push : clés VAPID, persistance des abonnements, compatibilité Safari et Brave, contraintes CSP.

Web Push VAPID N8N

Application de navigation autonome construite sur Leaflet.js.

Leaflet.js JavaScript

Dashcam PWA

Dashcam pour iPhone sous forme de PWA, avec diffusion vidéo via WebRTC et le serveur Janus.

PWA WebRTC Janus

Formation

Année Formation
2024 NestJS : architecture et patterns avancés
2023 Django : développement et déploiement d'applications web
2022 Maîtriser les LLM locaux avec Ollama et Python
2021 Docker pour les opérations et le développement
2020 MongoDB, Express, Angular et Node.js : Full Stack · IBM Maximo 7.6.1 et WebSphere 8.5
2018 Mastère Cloud Computing et Développement d'Applications Distribuées, ISET Sousse
2016 Licence Technologie Web et Multimédia, ISITCOM Hammam Sousse
2011 Baccalauréat Sciences de l'Informatique

Langues

Langue Niveau
Français Professionnel, oral et écrit
Anglais Professionnel, oral et écrit
Arabe Langue maternelle

Contact

Pour une mission d'architecture, de lead technique ou de modernisation IBM Maximo en Île-de-France :