/curriculum-vitae

Curriculum vitæ under Markdown format

Ghassen Khalil ATI

Colombes 92700 France
Mobile: 07 83 72 88 65
Email: ghassen1khalil@gmail.com
GitHub: ghassen1khalil
LinkedIn: ghassen-khalil-ati
Stackoverflow: ghassen

Lead Dev – Senior Developer / Freelance / Full Stack / Java - Angular / DevOps Enthusiast

FORMATIONS

2016 – 2017 | Paris – France

Master 2 spécialité Systèmes Embarqués Mobiles et Sûres
Conservatoire National des Arts et Métiers de Paris

2011 – 2014 | Sfax – Tunisie

Diplôme National d’Ingénieur en Génie Logiciel
Université Nord-Américaine Privée : Institut International de Technologie

2009 – 2011 | Sfax – Tunisie

Licence Fondamentale en Informatique et Multimédia
Institut Supérieur d’Informatique et Multimédia

2008 – 2009 | Sfax – Tunisie

Baccalauréat Sciences de l’Informatique
Lycée secondaire Ibn Rachiq

Langues :

Anglais : Courant

EXPÉRIENCES PROFESSIONNELLES

Side Project

Projet : Freelance Dashboard

Contexte : Développement d'une plateforme SaaS dédiée aux freelances pour les aider à suivre la phase de positionnement lors de leur recherche de missions.

Réalisation :

  • Gestion de projet en Kanban avec les boards GitLab assurant une organisation efficace des tâches et une visibilité claire sur l'avancement du projet.
  • Mise en place de la chaîne de Continuous Integration / Continuous Delivery (CI/CD) en utilisant Maven, SonarQube, Docker, Kubernetes et AWS avec GitLab CI, garantissant des déploiements rapides et fiables.
  • Création de mockups et wireframes UI avec Miro facilitant la conception et la validation de l'interface utilisateur avant le développement.
  • Développement des fonctionnalités et correction des bugs pour le backend et le frontend, assurant la qualité et la performance du produit final.
  • Rédaction de la documentation technique sur Notion.so, fournissant une référence claire et accessible pour les développeurs et les utilisateurs.

Environnement Technique : Java 17, Spring Boot 3, Spring Data, MongoDB, Angular 14, Redux (NgRx), PrimeNG, Maven, JKube, GitlabCI, Kubernetes, Docker, AWS, Gitlab, IntelliJ

Avril 2022 – Aujourd’hui | THALES DIGITAL FACTORY

Lead Dev Full Stack Java / Angular

Contexte : Accélérer la transformation digitale de Thales et de ses clients à travers le monde sur une plateforme publique et privée : Plateforme digitale et logicielle propulsée par Thales Digital Factory.

Projets :

  • Access Management : Développement d'un tableau de bord pour gérer les utilisateurs des outils de la Software Factory (GitLab, Artifactory, SonarQube, etc.) et leurs niveaux d'habilitation via des groupes synchronisés avec Azure Active Directory.
  • Boarding – Offer & Billing Management : Création de micro-services pour automatiser le processus d'onboarding et offboarding des utilisateurs, gérer les souscriptions aux différents packages proposés (Freemium, Inner-source, DevSecOps) et la facturation associée.
  • Export Control Projects Initializer : Mise en place d'un micro-service permettant aux utilisateurs de la Software Factory de créer les différents assets nécessaires pour un projet labellisé "Export Control", comme des groupes de repos sous GitLab ou des projets sous Artifactory.
  • Internal Developer Portal – Backstage : Développement d'une plateforme interne regroupant les ressources de la Software Factory telles que la documentation, les liens vers les outils (GitLab, SonarQube, MidPoint, etc.) ainsi que les APIs et services internes. Intégration de "Project Scaffolding" via Backstage pour permettre le démarrage rapide de nouveaux projets basés sur les bonnes pratiques avec la possibilité de choisir la stack technique grâce aux "Software Templates". Ajout d'un Tech Radar pour aider les équipes à choisir les technologies sécurisées et adoptées par d'autres équipes.

Réalisation :

  • Coaching des développeurs juniors issus d'autres écosystèmes que Spring / Angular
  • Réviser et refactoriser la base de code pour améliorer la qualité et les performances
  • Conception de nouvelles fonctionnalités du produit et prise de décision pour les architectures techniques
  • Utiliser Azure comme Cloud provider pour profiter de son large panel d'outils tels que AKS, Azure Active Directory, Storage, Networking, etc.
  • Animation et planification de réunions
  • Développer de nouveaux services pour les utilisateurs permettant d'utiliser l'usine logicielle de manière fluide.
  • Permettre une facturation fiable des utilisateurs
  • Développer des fonctionnalités permettant de monitorer l'utilisation des différents services et améliorer les services de la Digital Factory
  • Tenir en compte des feedbacks utilisateurs lors de la création de nouvelles fonctionnalités
  • Contribuer à développer la communauté Inner-source
  • Collaborer avec les autres équipes de la Software Factory sur le déploiement de nouveaux services

Environnement technique : Java 17, Spring, Angular, Redux pattern (NgRx), Material Design, Thales Design System, SonarQube, Gitlab (CI, Runners, Boards, etc.), Python, Pipelines, API & Micro-Services, Docker, Kubernetes, Helm Charts, Azure Cloud, shell scripting, BillOps, Backstage, ReactJS

Octobre 2021 – Mars 2022 | ENEDIS

Développeur Senior Full Stack

Projet : Portail Développeur

Contexte : Réalisation d’un portail développeur s'intégrant initialement avec le portail pour les collectivités locales. Ce portail permet l'inscription, la découverte et la souscription aux API depuis les différents espaces clients, offrant aux collectivités les fonctions minimales pour souscrire aux APIs Colloc.

Réalisation :

Frontend :

  • Développement des interfaces utilisateurs (screens) basées sur les maquettes Figma fournies par les UX/UI designers.
  • Définition de l'architecture et de la structure des composants Angular.
  • Utilisation du pattern Redux (action -> reducer -> store -> UI) avec NgRx pour la gestion de l'état de l'application.
  • Intégration de la bibliothèque Angular Material pour les composants UI.

Micro-services :

  • Rédaction des spécifications des APIs (api.yaml) et génération des endpoints via OpenAPI 3.0 (Swagger).
  • Mise en place de la gestion des exceptions et erreurs avec @ControllerAdvice pour les remonter au frontend.
  • Communication avec des services externes tels que WSO2 et API COLLOC LINC via des « chorégraphies ».
  • Développement d’un « Producer » Kafka pour la création des utilisateurs (collectivités) dans WSO2.
  • Élaboration d’une liste de flux (entrants et sortants) pour établir les autorisations nécessaires au niveau du WAF.

Environnement Technique : Java 11, Spring Boot, Kafka, Rest, Angular 10, Redux (NGRX), Maven, Jenkins pipelines, CI/CD, Kubernetes, Docker, GitLab CI, Agile Scrum, Jira, Confluence, IntelliJ

Juin 2017 – Sept. 2021 | Allianz France

Développeur Senior Full Stack Java / Angular

Projet : ACCESS MIDCORP (oct. 2019 – sept. 2021)

Contexte : Parcours digital composé d’une douzaine de micro-services proposant des produits d'assurance commercialisés par Allianz aux entreprises des segments Pro pour le multi-site et le bas de segment du MidCorp, couvrant des risques impactant leur activité. Le terme "Access" fait référence à l'informatisation et à la délégation des produits pour le bas de segment.

Réalisation :

Frontend :

  • Utilisation du pattern Redux (action -> reducer -> store -> UI) avec NgRx.
  • Application des guidelines graphiques d'Allianz via la librairie NDBX.
  • Développement des écrans/IHM en suivant les maquettes fournies sous Zeplin.
  • Participation aux ateliers UI/UX avec les designers de l'équipe pour affiner les interfaces utilisateur.

Micro-services :

  • Intégration d'un espace de signature électronique des contrats via DOCAPOST, partenaire d'Allianz.
  • Réalisation d'un PoC sur les web-sockets pour la réception asynchrone du statut de la signature électronique des clients.
  • Développement d'un micro-service pour la détection et la gestion des visas et la levée de réserves dans le parcours en fonction des informations renseignées par l’utilisateur.
  • Réalisation d'un PoC sur RabbitMQ pour les communications asynchrones.
  • Développement d'un micro-service pour le calcul du niveau de spécialisation des intermédiaires d'Allianz afin de lever ou non des visas selon leur pouvoir de délégation.

Environnement Technique : Java 11, Spring Boot, Spring Data, MongoDB, Redis, Spring Cloud, Feign, Netflix Eureka, Zuul, MyBatis, RabbitMQ, Architecture Micro-services, Rest & Soap WS, Angular 10, Redux (NGRX), NDBX, Maven, Jenkins pipelines, CI/CD, Openshift, Kubernetes, Docker, Kibana, AWS, Bitbucket, Agile Scrum, Feature-Teams, Jira, Confluence, IntelliJ

Projet : FAST CLAIMS (fév. – oct. 2019)

Contexte : Dans le cadre de la digitalisation des applications grand-public chez Allianz France, le projet Fast-Claims Auto vise à refondre le parcours de déclaration des sinistres autos pour les clients de la compagnie.

Réalisation :

  • Développement des interfaces utilisateurs (IHM) basées sur des maquettes respectant les guidelines de NDBX, le framework définissant l'identité graphique d'Allianz sous forme de composants réutilisables sous Angular.
  • Participation aux ateliers de conception et design UI/UX avec les designers.
  • Choix de l'architecture technique des différentes composant du projet.
  • Élaboration du dossier de livraison pour la direction de projet (DP).
  • Développement de la partie backend incluant :
    • Multi-module Maven
    • Configuration JavaConfig
    • Tokenisation des URLs pour les services fournis par d'autres systèmes applicatifs
    • Micro-services ABS (Allianz Business System)
    • Externalisation des parties communes vers d'autres projets appelables sous forme de dépendances Maven partagées sur Nexus. Ces parties incluent :
      • Composants graphiques
      • Code fonctionnel
      • Configurations techniques
      • Appels aux services externes communs entre ce projet et d'autres projets de la squad

Environnement Technique : Java 8, Spring Boot, Angular, NDBX, PatternLab, Zeplin, Sketch, InvisionApp, Rest & Soap WS, Maven, Jenkins, CI/CD, Agile Scrum, Jira, Confluence, IntelliJ, Allianz Business System

Projet : DEVOIR DE CONSEIL (janv. 2018 – fév. 2019)

Contexte : Projet réglementaire visant à garantir que les professionnels de l'assurance offrent un certain niveau de protection aux clients en leur posant des questions pour cerner leur profil en termes de prise de risque et de connaissance financière.

Réalisation :

Lot 1 : Souscription

  • Relecture et révision des spécifications fonctionnelles et du cahier des charges technique élaborés par les équipes métier et AMOA.
  • Participation à des réunions de travail avec les différentes parties prenantes : équipes métier, composantes techniques (éditique, moteurs de calcul de règles, équipe de développement frontend, etc.).
  • Développement des repositories pour la couche CORE afin de restituer les données de la base.
  • Développement des services dans la couche BUSINESS pour les règles métier.
  • Développement d'un module de transcodification entre le modèle de données du backend et le modèle attendu par l'équipe éditique basé sur une XSD.
  • Gestion des appels du composant éditique pour la génération des contrats sous forme de PDF.
  • Interaction avec le composant GED pour le stockage et la restitution des documents générés.
  • Exposition d'un web-service SOAP consommé par un autre système applicatif gérant la rémunération.
  • Correction des anomalies et développement des demandes de changement (change requests).

Lot 2 : Actualisation

  • Développement d'un écran synthétique pour le contrat en cours.
  • Développement des services backend et frontend pour la recherche des actes sauvegardés sur un contrat.
  • Développement d'un service pour un écran synthétisant les détails des allocations après l'application d'un acte souhaité.
  • Développement de la signature numérique d'un contrat d'actualisation en appelant les services exposés par DOCAPOST via l'orchestration des appels aux services ESB.
  • Correction des anomalies signalées par les équipes métier.

Environnement Technique : Java 8, Spring Framework, Design Patterns, IBM DB2, H2 Embedded DB, Angular 6, Jenkins, JIRA, Confluence, Intellij IDEA, HP ALM Quality Center

Projet : PRIIPS (juin 2017 – janv. 2018)

Contexte : La réglementation européenne PRIIPS (Packaged Retail Investment and Insurance-based Products) vise à uniformiser l’information précontractuelle des produits financiers packagés (fonds d’investissement, produits dérivés, produits d’assurance vie en mode épargne, etc.) proposés à des investisseurs non professionnels.

Réalisation :

  • Élaboration de la backlog pour la partie batch et IHM.
  • Création des diagrammes d'activités pour visualiser les flux de travail.
  • Développement des traitements batch pour les phases de prototype et de production des documents PRIIPS (KID et DIS).
  • Développement des batchs pour la production de documents liés aux univers d'investissement, aux documents clés d'informations et aux supports.
  • Développement de la couche d'accès aux données avec Spring JDBC.
  • Développement de la couche business (services) pour la logique métier.
  • Développement des écrans d'affichage des différents produits d'assurance et de leurs documents PDF.
  • Correction des anomalies et réalisation des demandes de changement (change requests).

Environnement Technique : Java 8, Spring Framework, Design Patterns, IBM DB2, H2 Embedded DB, Angular 6, Jenkins, JIRA, Confluence, Intellij IDEA, HP ALM Quality Center

Oct. 2016 – Mai 2017 | PAWO PARTNERS

Intégrateur DevOps – Tech Lead Full Stack Java / Angular

Projet : ERP KRENDEL

Contexte : Mise en place d’une usine logicielle (CI/CD, pipelines, conteneurisation) pour le développement du produit ERP KRENDEL de PAWO PARTNERS.

Réalisation :

Installation des outils :

  • Mise en place de Redmine pour la gestion de projet Agile.
  • Installation de GitLab comme serveur de stockage de codes source.
  • Déploiement de Jenkins pour les pipelines CI/CD.
  • Configuration de Nexus comme serveur de stockage des artefacts (livrables).
  • Intégration de SonarQube pour le suivi de la qualité du code.
  • Utilisation de Portainer pour l'administration des images et conteneurs Docker.

DevOps :

  • Création de jobs Jenkins avec des pipelines pour le build et le déploiement des applications (CI/CD).
  • Création et gestion des comptes applicatifs sur Bitbucket/Jenkins et affectation des rôles aux développeurs.
  • Préparation des images de base pour les environnements de développement (Java, Nginx, Apache, MongoDB).

Craftsmanship :

  • Pair programming avec les développeurs pour renforcer les compétences et partager les bonnes pratiques.
  • Validation des pull requests (PR) et relecture de code pour assurer la qualité.
  • Réalisation de tests unitaires et de tests d'intégration pour garantir la fiabilité du code.

Environnement Technique : Linux, SHELL scripting, Docker, Jenkins, pipelines, Groovy, Gitlab, Maven, Java 8, Portainer, Spring Boot, Angular 2, Nginx, Nexus, SonarQube

Mai – Oct. 2016 | SiFAST

Développeur Full Stack Java / JSF (Primefaces)

Projet : ACCESS CONTROL

Contexte : Développement d’une application web de contrôle d’accès et de pointage en utilisant le SDK de ZKTECO.

Réalisation :

  • Création des fichiers Docker pour la conteneurisation de l'application.
  • Développement de la couche d’accès aux données (DTO) pour une gestion efficace des données.
  • Développement des services pour la communication avec une pointeuse ZKTeco via le SDK (composant DLL ActiveX).
  • Développement des interfaces utilisateurs en JSF avec la bibliothèque PrimeFaces.
  • Application des design patterns Simple Factory, Observer et Strategy pour une architecture robuste.
  • Utilisation de mutex pour la synchronisation des accès concurrents aux ressources partagées.
  • Revue de code avec SonarQube pour assurer la qualité et la maintenabilité du code.
  • Réalisation de tests unitaires pour valider le bon fonctionnement du code.
  • Migration des données de PostgreSQL vers MySQL via Talend Open Studio.
  • Support et assistance en production pour garantir la disponibilité et la fiabilité de l'application.

Environnement Technique : Java 8, PrimeFaces, JSF, Jacob, Spring Security, Design Patterns, JUnit, MySQL Workbench, pgAdmin PostgreSQL, Tomcat 8, Eclipse Luna, Balsamiq Mockups, Jenkins, Docker, Talend Open Studio, Nexus, SonarQube, Git, Maven, Windows 7, Redmine, Agile Scrum

Août 2015 – Avr. 2016 | PRINT SECURE

Développeur Full Stack Java / JSF (Primefaces) / Android

Projet : SMART LOCALIZE

Contexte : Développement d’une application web et mobile pour la géolocalisation des véhicules et des smartphones.

Réalisation :

  • Participation à la définition du cahier des charges et des exigences techniques et fonctionnelles.
  • Développement d'un prototype d'application Android pour l'envoi des informations de position et de vitesse en temps réel et différé.
  • Développement d'une application web pour le suivi en temps réel des véhicules et des terminaux ainsi que la gestion des dispositifs, utilisateurs et alertes de dépassement de zones et de vitesse.
  • Application des design patterns Simple Factory et Observer pour une architecture modulaire et extensible.
  • Revue de code avec SonarQube pour assurer la qualité et la maintenabilité du code.
  • Réalisation de tests unitaires pour valider les fonctionnalités développées.

Environnement Technique : Java 8, PrimeFaces, JSF, Jacob, Spring Security, Design Patterns, JUnit, MySQL Workbench, pgAdmin PostgreSQL, Tomcat 8, Eclipse Luna, Balsamiq Mockups, Jenkins, Docker, Talend Open Studio, Nexus, SonarQube, Git, Maven, Windows 7, Redmine, Agile Scrum

Juin 2014 – Août 2015 | TEAMWILL CONSULTING

Développeur Backend - Java

Projet : CLYMENE GESTION

Contexte : Développement d’un front-office pour la saisie des demandes de financement.

Réalisation :

  • Étude et compréhension du métier du leasing financier pour aligner le développement aux besoins métier.
  • Participation à la définition du cahier des charges et des exigences techniques et fonctionnelles.
  • Prototypage et développement des interfaces graphiques pour une expérience utilisateur optimisée.
  • Élaboration du modèle conceptuel de données pour une gestion efficace des informations.
  • Développement de la gestion des rôles et de l’authentification pour sécuriser l'accès aux données sensibles.
  • Développement d’une solution pour la génération dynamique des documents (contrats, devis, etc.).
  • Réalisation de tests unitaires pour valider les fonctionnalités.
  • Exécution des tests et validation pour garantir la qualité du produit.
  • Rédaction de la documentation technique pour faciliter la maintenance et l’évolution du système.

Environnement Technique : Java 7, Spring MVC, Spring Security, JUnit, Apache FreeMarker, iText, Pencil, Ubuntu, SVN, Maven, Eclipse, Jenkins, SonarQube, JIRA, Agile SCRUM, TestLink, Subversion, Oracle 10g, PowerAMC

Janv. – Mai 2014 | BUSINESS SOFTWARE

Développeur Delphi

Projet : NEXUS ALU

Contexte : Développement d’une solution pour l’informatisation d’une menuiserie d’aluminium et l’optimisation de découpe des profilés afin de réduire les déchets.

Réalisation :

  • Étude et identification des problèmes spécifiques à l'optimisation de la découpe des profilés.
  • Participation à la définition des spécifications et des exigences techniques et fonctionnelles.
  • Conception de l’algorithme d’optimisation et comparaison des résultats basés sur plusieurs méta-heuristiques : recherche locale, recherche taboue et algorithme génétique.
  • Test et validation de l’algorithme pour assurer son efficacité et sa précision.
  • Rédaction de la documentation technique du module pour faciliter la maintenance et l'évolution future.

Environnement Technique : RAD Studio, Embarcadero XE6, Delphi, git, méta-heuristique, recherche locale, recherche tabou, algorithmes génétiques

Juin – Sept. 2011 | BUSINESS SOFTWARE

Développeur ANDROID (Projet de fin d’études)

Projet : NÉGOCE MOBILE

Contexte : Développement d’un module de gestion des commandes pour la version mobile sous Android de l’ERP BS Négoce.

Réalisation :

  • Définition des spécifications et des exigences techniques et fonctionnelles.
  • Développement d'une API RESTful pour exposer les services permettant la gestion et le suivi des commandes.
  • Création des interfaces utilisateurs (Activities Android avec XML) pour une expérience utilisateur intuitive.
  • Développement des fonctionnalités consommant les services exposés par l’API pour la gestion des commandes.
  • Réalisation de tests unitaires et validation des fonctionnalités développées.
  • Rédaction de la documentation technique pour faciliter la maintenance et l’évolution du module.

Environnement Technique : Eclipse ADT, Android API 13, PHP, SQL Server, Git, REST, MVC

COMPÉTENCES

Génie logiciel :

Analyse des besoins, conception, réalisation, tests unitaires, tests d'intégration, validation, documentation, maintenance, design pattern, architecture SOA, architecture micro-services

Langages de programmation :

Java, JavaScript, Typescript, SQL, Groovy

Frameworks :

JEE, Android SDK, Spring (Core, Boot, Data, Cloud, Web, Batch, Security, etc.), Hibernate, MyBatis, JUnit, Mockito

Développement Web :

HTML, CSS, Ajax, JSF, Angular 2+, Bootstrap, RxJS, NgRx

DevOps / Cloud :

Docker, Kubernetes, JKube, Jenkins pipelines, Shell scripting, Linux (unix), AWS, OVH, Azure, Google Cloud Platform

Software Craftsmanship :

Clean Code, SonarQube, pair programming, quality gates, tests unitaires, tests d’intégration

Outils :

Eclipse, Android Studio, Visual Studio, Embarcadero XE, Brackets, SQL Server Management Studio, MySQL Workbench, Maven, Gradle, Talend Open Studio, IntelliJ IDEA

Serveurs d’application :

Apache Tomcat, JBoss

Serveur Web :

Apache, Nginx

Méthodologie de conception :

Git, SVN

SGBD :

SQL Server, MySQL, PostgreSQL, DB2, MongoDB, Redis

Gestion de projet :

Redmine, JIRA, Agile Scrum, Confluence, Trello

CERTIFICATIONS, PRIX ET DISTINCTIONS

Janv. 2016

Certification : Test de connaissance en Français (score 600)

Janv. 2015

Formateur Bigdata Hadoop dans la journée NetLinks 217

Déc. 2014

Certification : Cisco CCNA 1

Nov. 2014

Participation : GDG DevFest 2014 – 1er Prix

Oct. 2013

Participation : Microsoft Coding Party 2013 – 2ème Prix

CENTRES D’INTERÊTS & ACTIVITÉS

Clubs & associations

Fondateur et Ex-Président de l’IIT Google Club (2011 - 2016)
Membre actif de l’IIT Robotics Club (2011 - 2016)
Organisation de Google IO et GDG DevFest en 2013, 2014 et 2015

Évènements IT

Meetups, Webinars, ApiDays, AWSome Day Paris
XebiCon 2018, Droidcon TN 14, 15

Divers

Investissement Immo