FORMATION
ENSI Tunis
Diplôme d’ingénieur en informatique. 2000
Lycée Menzah IX Tunis
Bac S Mention Bien. 1995
COMPETENCES
Connaissance des architectures distribuées et des problèmes de haute disponibilité.
Serveurs d’applications: Weblogic, Tomcat, Jetty.
Outils de développement: JDK, Maven, Ant, Eclipse, IDEA, Hudson/Jenkins, Emacs/Vim.
Frameworks: JGroups, Jakarta*, JUnit, Testng, Spring, Hibernate, JMX, Liftweb.
OO, Méthodologies: Maîtrise des Design Patterns, UML, Scrum, et les bonnes pratiques de l’OO.
Langages: Java, Scala, Haskell, Erlang, Ruby, Python, Javascript, C/C++.
SGBD: Oracle, MySQL, PostgreSQL, MongoDB, Cassandra.
Mobile Devices Ingenierie Paris
Développeur Erlang/MongoDB Depuis 02/11
Conception et développement d’un Cloud pour connecter des centaines de milliers de clients mobiles.
Optimisation du protocole de communication afin de minimiser les quantités de données échangées (ASN1, Compression, méthodes différentielles, UDP…)
Configuration et déploiement d'un cluster de MongoDB partitionné et répliqué.
Implémentation d'un serveur en Erlang gérant une dizaine de milliers de connections.
Implémentation d'un système de files d'attente basé sur Redis en C.
Implémentation de plusieurs services REST avec Haskell/Snap.
Systar Paris
Développeur Senior 2009–2011
Conception et développement d’un ensemble de services OSGI pour la gestion de la performance opérationnelle (deux applications: Business Activity Monitoring et Capacity Management).
Implémentation d’un service distribué d’absorption d’événements: gestion de la tolérance aux fautes, spécification du modèle de consistance des données et implémentation d’un indexe temporel à base d’une R-Tree.
Implémentation d’un moteur d’exécution de requêtes basé sur l’algèbre relationnelle et le modèle MapReduce.
Implémentation d’un prototype de moteur distribué de Stream Processing.
Implémentation d’une librairie extensible de calcul (arithmétique et statistique) utilisée par le langage de requête.
Newe SAS Paris
Directeur de développement 2007–2009
Responsable d’une équipe de quatre personnes, gestion de projet en mode Scrum.
Conception et implémentation d’une application Web 2.0 permettant la gestion et la création de différents types de Workflows de Video Streaming: Scala/Liftweb et ActiveMQ.
Développement de modules d’interfaçage avec plusieurs types d’équipements: C/C++ et Java.
Démonstration du produit et aboutissement à une première vente.
Administration et mise en place des environnements de développement: Git, Maven, Jetty, Visual Studio.
Installation et packaging des applications/matériels livrés, créations des services sur Windows et Debian.
Capgemini: Orange/FTR&D Caen
Architecte technique 2006–2007
Responsable de l’architecture d’un système distribué pour la gestion de la sécurité de l’information (SIM).
Conception et développement des modules de récupération et de transformation de logs en événements de sécurité.
Implémentation d’une framework de communication basée sur JMS.
Mise en place d’un mécanisme d’administration à distance des sondes et des relais.
Mise en place des outils de configuration, installation et migration des versions de tous les nœuds du système.
Développement en JRuby d’outils pour la configuration et le déploiement d’applications sur Weblogic (via JMX).
Capgemini: Orange/FTR&D Caen
Architecte technique 2005–2006
Architecte et responsable de développement (4 personnes) d’un serveur de paiement sécurisé et son interface Web (Struts) intégrant la notion de Wallet et interagissant avec la passerelle iPin de Valista.
Développement des composants métier (POJO) pour la gestion des autorisations, confirmations, seuils d’utilisation, micro et macro-paiement, cryptage et sécurisation des numéros de cartes bancaires, communication avec le Gestionnaire de Télépaiement et le Commerce Router de Valista.
Livraison avant les délais grâce à la mise en place d’un processus itératif et l’utilisation des tests unitaires.
Smart-up: SGCIB Paris
Développeur Finance/Java 2004–2005
Développement de modules pour la gestion du risque réglementaire sur tout le périmètre de la salle: VaR historique, Analyse du risque limite, Analyse du risque de taux...
Développement des interfaces Swing pour le pilotage des processus.
Intégration et test des modules avec JRisk et Weblogic 7.
Développement d’un mécanisme de reprise sur erreur pour minimiser le temps d’exécution.
Développement de scripts Perl pour la supervision des processus.
Alcion: CAAM Paris
Architecte technique 2002–2004
Conception et implémentation de l’architecture du système Front/Middle Office (Websphere 4).
Responsable de la mise en place d’un cluster de serveurs de positions, utilisation de Coherence Tangosol.
Développement du client lourd en Swing, mise en place d’un mécanisme de plugins pour modulariser le système et spécialiser les interfaces selon le type de portefeuilles gérés.
Développement de plusieurs modules métier: gestion obligataire avec différentes possibilités de simulation, système de saisie des notations internes, utilisation du serveur de contraintes Ilog JRules…
Automatisation du processus d’intégration (Gain de 4 J/H par mois), formation de l’équipe au TDD.
Alcion: Orange Labs Caen
Développeur Java/J2EE 2001–2002
Conception et développement d’un module SSO en utilisant des EJB sur Weblogic 6.
Conception et développement d’une interface Web d’administration et de provisioning avec Struts.
Mise en place d’un module de workflow avec des Web Services (Axis).
BFI Tunis
Développeur VB/C++/Oracle 2000–2001
Conception et développement d’un site de Banque Virtuelle One-to-One.
Développement de l’interface de configuration des règles d’inférence pour l’équipe de marketing. Utilisation du moteur d’inférence AION de Computer Associates.
Développement d'un système de remontée d’alertes du Back Office vers l’interface Web.
Développement des composants COM+ pour la communication avec le Back Office.