depuis la création du compte
Confiez votre projet à Nabil
Faites appel à l'expertise de Nabil pour faire avancer votre projet, ou découvrez d'autres freelances pour trouver celui qui correspondra parfaitement à vos besoins.
Développeur Java Senior avec plus de 7 ans d’expérience dans la conception et le développement d’applications web performantes, sécurisées et évolutives pour des environnements exigeants (banque, assurance, e-commerce et systèmes d’entreprise).
Spécialisé dans l’écosystème Java/Spring, j’accompagne les entreprises dans la création de solutions robustes : développement d’API REST, conception d’architectures microservices, intégration de systèmes, optimisation des performances et industrialisation des déploiements.
Mes principales compétences :
• Java (8/11/17/21), Spring Boot, Spring Security, Spring Batch, Spring Cloud
• Architecture microservices, Domain-Driven Design (DDD), Kafka, WebSocket
• Développement d’API REST et intégration de services tiers
• Bases de données relationnelles et NoSQL : PostgreSQL, Oracle, MySQL, MongoDB, Redis
• Frontend : Angular, React.js, TypeScript
• DevOps : Docker, Kubernetes, Jenkins, GitLab CI/CD, Maven, SonarQube
• Tests et qualité : JUnit, Mockito, Clean Code, revue de code
J’ai travaillé sur des projets critiques dans le secteur bancaire et financier, notamment des plateformes de gestion documentaire, des applications transactionnelles, des marketplaces et des systèmes distribués à forte volumétrie.
Ma méthode de travail repose sur :
• Une compréhension claire des besoins fonctionnels et techniques
• Une architecture adaptée aux contraintes du projet
• Un code propre, maintenable et testé
• Une communication transparente avec les équipes et les clients
• Une approche Agile basée sur la collaboration et l’amélioration continue
Disponible pour accompagner vos projets backend, full stack ou de modernisation applicative, avec une attention particulière portée à la qualité, la sécurité et la performance.
Projet GED Bancaire & Assurance
- Développement et maintenance d’une plateforme de GED (Gestion Électronique de Documents) destinée aux établissements bancaires et aux compagnies d’assurance.
- Gestion de documents sensibles : contrats bancaires, dossiers clients, pièces justificatives et documents d’assurance (ex. : RMA Maroc).
- Implémentation de traitements batch pour l’ingestion massive, la numérisation, l’indexation et le chaînage documentaire.
- Développement de processus automatisés de lecture et traitement des documents depuis des serveurs FTP (collecte, validation et archivage).
- Développement backend avec Java 17, Spring Boot et Spring Batch.
- Conception et exposition d’API REST pour la gestion des documents, des lots, des métadonnées et des statuts de traitement.
- Mise en place de communications temps réel via WebSocket pour le suivi de l’avancement des traitements batch.
- Supervision applicative et analyse des logs avec Kibana pour le monitoring, le diagnostic et la résolution d’incidents.
- Déploiement et exploitation de l’application sur JBoss.
- Développement d’une interface de supervision avec Angular permettant la visualisation des lots traités et en cours, la recherche, le filtrage par statut, la consultation des détails de traitement et erreurs, ainsi que l’export des rapports.
- Participation aux cérémonies Agile/Scrum : sprints, daily meetings, revues et rétrospectives.
Réalisation de revues de code et validation technique afin de garantir la qualité, la performance et la maintenabilité du code.
- Accompagnement des développeurs juniors et contribution à leur montée en compétences.
Rédaction de tickets techniques et documentation associée.
Projet Automatisation des Appels Vocaux – Bank of Africa (BOA)
- Développement d’un système d’automatisation d’appels vocaux sortants pour Bank of Africa.
Implémentation d’un traitement Spring Batch permettant la lecture des données clients depuis Oracle Database et le déclenchement d’appels automatisés via une API tierce.
- Conception et création des tables de traçabilité Oracle pour le suivi des appels, des statuts de traitement et des demandes de rappel.
- Mise en place d’une stratégie de retry multi-niveaux avec gestion des erreurs, reprise automatique après incident et envoi d’alertes email.
- Sécurisation de l’application avec Spring Security, authentification basée sur JWT et chiffrement des communications via certificats SSL/TLS.
- Gestion des événements temps réel via des webhooks pour la collecte et le suivi des interactions clients.
- Environnement technique :
Java 17, Spring Boot, Spring Batch, REST APIs, WebSocket, Angular 18, FTP, Kibana, JBoss, MariaDB, Oracle Database, Git, CI/CD, Webhooks, JWT, SSL/TLS, Agile/Scrum.
- Développement d’API REST et SOAP avec Java 17 / Spring Boot pour les opérations bancaires, la gestion des comptes, des transactions, des souscriptions de produits et de la relation client.
- Conception d’une architecture microservices basée sur les principes du Domain-Driven Design (DDD), avec un découpage par domaines métier : référentiels, relation client, souscription de produits et services support.
- Implémentation d’un microservice agrégateur permettant de consolider en parallèle les données provenant de plusieurs systèmes afin de construire une fiche client unifiée, avec utilisation de Redis Cache et de Resilience4j (Circuit Breaker) pour améliorer la résilience.
- Conception et orchestration d’une architecture événementielle avec Apache Kafka : définition des topics métier, mise en œuvre du pattern Saga pour la gestion des transactions distribuées avec mécanismes de compensation.
- Sécurisation de la plateforme avec Keycloak, propagation des JWT entre microservices et gestion des contrôles d’accès basés sur les rôles via Spring Cloud Gateway.
- Gestion de la persistance des données avec Oracle Database pour les données transactionnelles (clients, comptes, produits souscrits, contrats…) et MongoDB pour le stockage des documents non structurés (actes sur tiers, contrats générés…).
- Développement d’interfaces utilisateur réactives avec React.js, Redux et Material UI : création de composants réutilisables, tableaux de bord de suivi et parcours de souscription multi-étapes.
- Intégration frontend/backend des microservices via Spring Cloud Gateway avec validation JWT, routage centralisé et mise en place de mécanismes de limitation de trafic (Rate Limiting).
- Optimisation des performances applicatives : tuning des requêtes Oracle, indexation ciblée et mise en place d’une stratégie de cache Redis multi-niveaux avec invalidation basée sur les événements Kafka.
- Conteneurisation et orchestration des déploiements avec Docker et Kubernetes.
- Maintenance et évolution des pipelines CI/CD Jenkins : builds Maven, exécution des tests unitaires (JUnit, Mockito), analyse qualité avec SonarQube, publication des artefacts via Nexus et déploiements automatisés sur Kubernetes.
- Mise en place de l’observabilité applicative : exposition des métriques via Spring Actuator / Prometheus, centralisation et analyse des logs avec ELK Stack (Kibana) et création de dashboards Grafana.
- Leadership technique : animation des revues de code, définition des standards de développement (Clean Code, TDD, DDD) et accompagnement des décisions d’architecture avec les architectes et Delivery Managers.
- Accompagnement et mentorat des développeurs juniors : montée en compétences sur Spring Boot, Kafka et les patterns microservices, revues de code et sessions de partage technique.
- Collaboration transverse avec les équipes DevOps, QA, Architectes et Delivery Managers durant les phases de conception, développement, déploiement et mise en production afin de garantir la qualité et la fiabilité des livrables.
- Environnement technique :
Java 8/11/17, Spring Boot, Spring Security, Spring Cloud Gateway, Spring Web Flow, Keycloak (OAuth2/OIDC), Apache Kafka, Architecture Microservices (DDD, Saga), Resilience4j, React.js, Redux, Material UI, TypeScript, Docker, Kubernetes, Oracle Database, PostgreSQL, MongoDB, Redis, Git, GitLab, Jenkins, SonarQube, Nexus, Maven, JUnit, Mockito, Prometheus, Grafana, Agile/Scrum.
- Conception et développement d’une application e-commerce complète visant à faciliter les interactions entre les agences postales à travers le Maroc.
- Développement d’API REST avec Spring Boot pour gérer les services liés aux colis, notamment le suivi en temps réel, la création et la mise à jour des expéditions.
- Conception d’interfaces responsive et ergonomiques avec Angular, optimisées pour les environnements mobile et desktop afin d’améliorer l’expérience utilisateur.
- Mise en place d’un système avancé de gestion des commandes, incluant le suivi détaillé, l’historique des statuts et le traitement sécurisé des paiements.
- Sécurisation de l’application avec Spring Security et mise en œuvre d’un mécanisme d’authentification et d’autorisation basé sur JWT.
- Intégration de services tiers, notamment Google Maps API, pour la géolocalisation des agences postales et l’optimisation des parcours de livraison.
- Participation aux revues de code, aux tests unitaires et à l’optimisation des performances afin de garantir la qualité, la maintenabilité et la fiabilité du système.
- Environnement technique : Java 8/11, Spring Boot, Spring Security, JWT, Angular, SQL Server, Docker, Jenkins, Google Maps API, Microservices, Prometheus/Grafana, GitFlow.