Expériences Professionnelles
Développeur Backend C/C++ - HITACHI && SNCF| Trappes, France | Mai 2024 – Aujourd’hui
• Collaboration avec une équipe de cinq développeurs, un architecte et un Scrum Master pour construire un serveur permettant l’envoi de commandes de restrictions aux trains (limitations de vitesse, configurations de tunnels, contrôles de direction).
• Optimisation du cycle de développement et mise en œuvre d’un pipeline d’intégration continue.
• Développement d’un module d’interface entre le serveur Argos RBC (boîte de commande des trains) et le serveur GEST basé sur le document de conception : Message Queue, Multitâche.
• Conception d’outils pour analyser le code C/C++ à l’aide des bibliothèques Polyspace.
• Développement d’un outil de calcul de couverture du code C/C++ avec Polyspace.
• Rédaction de tests unitaires utilisant le framework pstUnit pour Polyspace.
• Spécification des tests unitaires à développer par les collègues.
• Encadrement et optimisation de la documentation et des méthodologies du projet :
o Création de canaux dédiés au partage des connaissances/discussions techniques.
o Mise en place d’une documentation Wiki et incitation à sa priorisation.
o Développement d’un mécanisme de suivi de l’état du projet via des exécutions régulières de tests (unitaires/intégration) pour maintenir la stabilité.
• Rôle d’intermédiaire entre l’architecte et les développeurs, offrant un soutien et débloquant des problèmes pour les développeurs, testeurs et vérificateurs.
• Estimation des tâches et participation à leur découpage et planification.
Langages de Programmation : C, C++, Scripts Shell
Outils : GDB, Message Queue, Multitâche, ActiveMQ, Polyspace, Git, GitHub, Jira, Confluence
Développeur Backend C++/Java - Amadeus | Villeneuve-Loubet, France | Nov 2022 – Jan 2024
Projet 1 : Intégration des systèmes de paiement en C++ (Kafka)
• Développement de nouvelles fonctionnalités pour l’intégration des systèmes de paiement en utilisant C++17, améliorant les capacités du système GDS.
o Collecte des données de paiement.
o Cryptage des données de paiement.
o Gestion de l’authentification.
o Gestion de l’autorisation.
• Configuration locale de SonarQube pour générer des rapports instantanés avant la mise en production.
• Amélioration de la couverture des tests unitaires à 84% en utilisant Google Test et résolution des problèmes de SonarQube.
• Gestion, maintenance et évolution d’une base de données à grande volumétrie : La base de données des voyageurs d’Amadeus, étant la plus grande du transport aérien.
• Encadrement technique pour l’intégration des fournisseurs de systèmes de paiement, incluant des consultations et des sessions de débogage sur les flux de paiement, de l’authentification au règlement.
Projet 2 : Collecte et exposition des données PSP en Java dans une architecture SOA
• Développement de 3 microservices et des endpoints REST APIs pour stocker, mettre à jour et récupérer des données dans/depuis la base de données MongoDB.
• Création de tests unitaires avec les frameworks JUnit-5 et Quarkus.
• Configuration de CyberArk pour la gestion des secrets avec Microsoft Azure et Openshift.
Outils Clés : C++17, Java, Quarkus, Kubernetes, CI/CD, SonarQube, MongoDB, Kafka, SOA
Développeur C++/QT - FNZ | Tunis, Tunisie | Juin 2021 – Oct 2022
• Refactorisation de solutions pour le calcul d'indice de risque client et amélioration des modules E-banking.
• Conception de solutions d’export JSON en utilisant JSONCPP, reliant les données backend aux interfaces frontend.
• Développement et maintenance d’un module AML (Anti Money Laundering).
• Développement de CIMBridge, un serveur HTTPS en C++/Qt exposant des APIs REST pour synchroniser les données entre CIM, APSYS et BankersFront :
o Création des interfaces Qt (QWidget) permettant à l’utilisateur de configurer les mappings entre les applications.
o Implémentation des REST APIs avec QtNetwork, renvoyant les données en format JSON adapté.
o Développement d’un singleton pour la gestion centralisée de la base de données MySQL.
o Configuration de l’application via des fichiers .ini.
o Mise en place d’un système de journalisation pour tracer les échanges et garantir l’intégrité des données transmises.
o Rédaction de la documentation technique complète.
Outils Clés : C++, Qt, JSONCPP, MySQL, QtNetwork, Git, Bitbucket, Jira
Développeur C Linux - Sagemcom | Mégrine, Tunisie | Août 2018 – Juin 2021
• Support client au Mexique pour le développement et l'intégration des fonctionnalités middleware :
o Assistance pour le développement de l'interface utilisateur et mise en œuvre des spécifications.
o Résolution des problèmes middleware et propositions de correctifs côté UI.
• Développement de démonstrations interactives:
o Intégration de publicités Google dans des vidéos à la demande (VOD) en utilisant la norme SCTE35.
o Création d’interfaces utilisateur embarquées (menus ingénieur, pages de test unitaire) en HTML/JavaScript.
o Développement d’un portail web pour configurer, tester et déboguer les paramètres réseau sans fil.
• Contributions réseau :
o Développement d’un mécanisme de roaming entre points d’accès pour garantir un signal RSSI optimal.
o Développement, maintenance et débogage du protocole TR69 avec communication SOAP/HTTP.
o Intégration des certifications TLS/SSL : Développement d’un code en C pour intégrer et configurer une communication HTTPS.
o Implémentation d’une communication WebSocket côté middleware (C avec libscon) et côté web (JavaScript JSONRPC).
• Développement de solutions audio/vidéo :
o Résolution de bugs pour les modules HDMI, Netflix, Spotify et Player.
o Implémentation de normes de streaming telles que HLS, MSS, DRM.
Outils Clés : GIT, SVN, Bugzilla, Jira, Confluence, Wireshark, TCP/IP, TLS/SSL, JSONRPC
Normes Audio/Vidéo : MPEG, HEVC H264/H265, SCTE35
Systèmes d’exploitation : Ubuntu, Debian, Windows
Stages
STMicroelectronics (2017-2018)
• Développement d’outils en Python pour automatiser les pilotes BSP et création de tableaux de bord pour la conformité MISRA C 2012.
Outils Clés : Python, C, STM32Cube, XML