À Propos

Introduction

Ingénieur ETS avec une expérience internationale de plus de dix années dans le domaine de l’architecture, de la data, de la conception et du développement de logiciels distribués pour l’industrie bancaire et autres. Capacité de conduire à bien un projet seul ou en équipe de la conception business à l’implémentation technique. Promoteur d’architecture réactive (www.reactivemanifesto.org) utilisant une programmation orientée fonctionnelle. 8 years d’expérience avec Scala et Akka.

Citation

L’imagination est plus importante que la connaissance. La connaissance est limitée alors que l’imagination englobe le monde entier, stimule le progrès, suscite l’évolution.

Albert Einstein

Expériences

Romande Energie - Lausanne EPFL, Suisse
2018 - Aujourd’hui

Data & System Architect

Responsable de l'architecture d'une platforme IoT (Internet of Things) pour la recherche de nouveaux business modèle dans le domaine de l'énergie.

Technologies principales utilisées :

Scala, Scala.js, Akka, Akka.js, Akka FSM, Play, SBT, HTML 5, CSS 3, JavaScript, node-red, MQTT, TLS/SSL, GIT, Docker, Kafka, SOAP, REST

SkySoft ATM - Genève, Suisse
Juin 2018

Senior Software Developer (Freelance)

Architecture et développement d'une architecture réactive pour le traitement de données d'information de vols.

Technologies principales utilisées :

Scala, Akka Stream, SBT, TLS/SSL, datagram, Protobuf, GIT, Docker, REST

Crossing-Tech - Lausanne EPFL, Suisse
2009 - 2017

Responsable technique

Management et création d'une plateforme dédiée IoT (Internet of Things)
Création d’une plateforme IoT permettant la capture, la contextualisation des données ainsi que la persistance de celle-ci. La plateforme permet la restitution des données dans le format et la technologie demandée par le cas d’utilisation. Comme démonstrateur, nous avons restitué la donnée dans 4 environnements:

  • Un dashboard flexible permettant de représenter les informations à la demande.

  • Représentation des données dans un environnement en 3 dimensions avec navigation dans le modèle à la première personne.

  • Interaction avec les actionnables dans un monde en réalité augmentée.

  • Un environnement permettant d’exécuter de simples requêtes ou d’appliquer des algorithmes de "Machine learning" et/ou de "Deep learning".


Mise en place d’une architecture réactive, utilisant le principe de la source d’événements afin d’ouvrir de nouveau canaux digitaux pour la société Altares.

Consultant pour X10sys, audit technologique de leur base de données associative et application de cette technologie dans le cadre d’un projet de conformité bancaire.

Prototypage, création du logo et direction du projet Babel. Le projet Babel est un langage spécifique d’intégration qui a pour but d’utiliser les avantages de la modularité, du typage et des lambda de Scala afin de créer un code d’intégration de qualité ainsi que de créer une abstraction de la problématique d’intégration. Le projet est open source et le code ce trouve sur Github.

Supervision d’un étudiant pour son projet de master à l’EPLF avec comme sujet "Distribution of the Enterprise Integration Patterns with Akka, a framework based on the Actor model".

Collaboration avec l’HEIG-VD pour une évaluation de technologies dans le cadre d’un projet SPECO. Le but de ce projet était l’évaluation de technologie; Hadoop/HBase, Storm et Spark streaming afin de calculer en temps réel la possible fuite d’information de documents confidentiels d’une entreprise. La détection est effectuée en utilisant des techniques de "Near Duplicate Detection"

Mise en production d’un système de traitement de données de distributeur d’argent pour Saudi Hollandi Bank. Solution entièrement développée en Scala et en production depuis 2011.

Choix d’architecture, développement et packaging du produit « Connectivity FactoryTM », d’une plateforme d’intégration basée sur ServiceMix. Gestion du cycle de développement complet dans de multiples projets d’intégration impliquant:

  • Logiciels bancaires (T24, Predator, Kondor, Ullink, Front Arena)
  • Appareil d’authentification par reconnaissance d’iris (IrisGuard)
  • Robot Humanoid (Nao)
  • Divers logiciels (Sales Force, AEMM, ...)
  • Utilisant toute sorte de technologie (Akka, WS-REST, WS-SOAP, Python, File, FTP, JMS, JDBC, FIX, PL,SQL, T24-OFS)


Technologies principales utilisées :

Scala, Scala.js, Akka, Akka.js, Akka FSM, Play, SBT, ConductR, HTML 5, CSS 3, JavaScript, Espruino, node.js, C#, C, LoRa, node-red, MQTT, TLS/SSL, Unity, Zepplin, ARKit, associative DB, ServiceMix, OSGi, JBI, NMR, Spring, Camel, DSL, Maven, GIT, SVN, Docker, Jenkins, TeamCity

Clio - Martigny, Suisse
2009

Architecte Expérimenté

Dans le cadre de la refonte des composants de l’interface graphique du projet NOVA du Groupe Mutuel.

Architecture de la partie paramétrage en terme de base de données, EJB et front end.

Chef de projet technique pour le développement de la solution.

Technologies principales utilisées :

Rational Software Architect, Websphere 6.1, JSF, Spring, Spring WebFlow, Hibernate, EJB, Oracle 10G, Maven, SVN

Temenos SA - Genève, Suisse
2004 - 2009

Architecte Expérimenté

Participation à la conception, développement, tests et déploiement de la solution SOA pour la compagnie. La solution est basée sur JBI (Java Business Integration) et ServiceMix (FUSE) pour l’implémentation. Un des challenges a été de concevoir le produit pour avoir une communication entre .NET et les autres plate-forme à 100 % compatible. La solution crée et déploie automatiquement des services web à partir de données élémentaires du logiciel bancaire. En charge de l’écriture d’une console web utilisant la technologie AJAX afin de gérer une configuration centralisée. Création d’une formation contenant un cours et des laboratoires pour former les employés de l’entreprise et donné la formation sur une semaine.

Technologies principales utilisées :

ESB, FUSE, WS-*, AJAX, ICEFACES.

Implémentation de la solution J2EE de Temenos pour le centre de démonstration pour la clientèle. Le serveur d’applications était Oracle 10g. La solution met en œuvre deux groupes de deux machines utilisant Suse comme système d’exploitation.

Technologies principales utilisées :

J2EE, ORACLE AS

Temenos UK -
Hemel Hempstead, Royaume-Uni
2002 - 2004

Développeur Sytème Expérimenté

Conçu et développé une solution intergiciel pour connecter l’interface graphique utilisateur au logiciel bancaire (T24). Le logiciel s’occupe de répartir la charge entre plusieurs serveurs utilisant des connections point à point. Cette solution a d’abord été écrit en C et pour des raisons de facilité de déploiement a été totalement réécrite en JAVA. Cette solution a été déployée sous Windows, Linux, AIX, HP-UX, S390 et AS400. La communication est sécurisée par SSL. Pour améliorer la qualité du logiciel une brique de test a été développée. Géré la conception, le développement, les tests et le déploiement seul puis formé des consultants et développeurs pour assurer le soutien à la clientèle et la pérennité du produit.

Technologies principales utilisées :

C, VB6, OpenSSL, JAVA, JSSE, JNI, XML (JAXB).

Développé un installateur pour plusieurs plate-formes avec une interface graphique et une interface texte. L’installateur est toujours utilisé pour l’installation de jBase sous Windows, Linux, AIX et HP-UX.

Technologies principales utilisées :

Java, Swing, JNI, XML (JAXB), registre de Windows.

jBase Inc (Temenos NV) -
Portland, OR, USA
2001 - 2002

Développeur

Migration d’une base de données de C/C++ vers J2EE.

Technologies principales utilisées:

C/C++, JAVA.

Publication d’EJB utilisant Websphere (3.5/4) comme application server.

Technologies principales utilisées:

EJB, JAVA, Websphere(3.5/4).

Implémentation d’un répartiteur réseau d’IBM (Edge Server).

Technologies principales utilisées :

JAVA, Edge server.

Intégration de Perforce dans jBuilder 5.

Technologies principales utilisées :

JAVA, jBuilder.

Temenos SA - Genève, Suisse
1999 - 2001

Développeur

Conception, développement, tests et intégration de la solution bancaire par internet pour le système bancaire nommé Globus. La première version a été écrite en Visual Basic 6 et réécrite en Java.

Technologies principales utilisées :

Java, Visual Basic 6, Webclass, Apache, IIS, ASP, JSP, HTML, DHTML, WML (WAP phone), cHTML (iMode), XML / XSL, SYLK, JServe.

Travaillé sur le interface graphique nommée “Desktop” du système bancaire Globus (T24) sous Windows.

Technologies principales utilisées :

Visual Basic 6.

Groupe Sopra -
Genève, Suisse / Annecy, France
1997 - 1999

Ingénieur Logiciel

Travaillé sur une solution de saisie et de validation des propositions de contrat d’assurance-vie (Projet pilote orienté objet ).

Technologies principales utilisées:

Rational Rose (UML), Visual Basic 6, ASP, Crystal Report, Acrobate Writer et IIS.

Travaillé sur un logiciel de report bancaire (Projet composé de 60 ingénieurs).

Technologies principales utilisées:

Oracle, SQL, Visual Basic 5.

Développement de programmes spécifiques pour Givandan-Roure utilisant ASSET BPCS v.6.4(SSA) sur AS400.

Technologies principales utilisées:

ASSET, DB2, AS400, SQL.

E.I.G (Ecole d’ingénieur de Genève)
Genève, Suisse
1997

Ingénieur Logiciel

Développement d’un tester ISDN (Interface S.T.U.).

Technologies principales utilisées:

C, 68HC11.

Migration du projet de diplôme SwissControl (SkyGuide) vers NT4 utilisant Visual Basic 4 et mise en production du logiciel.

Technologies principales utilisées:

Visual Basic 4, NT4

Agena SA - Genève, Suisse
1992 - 1994

Technicien

Gestion d’un atelier de réparation Radio-TV et supervision d’apprentis.

Technologies principales utilisées:

Satellite, Bus I2C.

Télé SOS - Genève, Suisse
1991 - 1992

Technicien

Réparation radio - TV en atelier.


Études

Coursera - EPFL
2017

Projet final de programmation fonctionnelle en Scala.

Dans le projet final, vous appliquez les compétences que vous avez acquises en construisant une application à forte densité de données en utilisant les données du monde réel. Vous implémenterez une application complète de plusieurs gigaoctets de données. Cette application montrera des visualisations interactives de lévolution des températures dans le temps dans le monde entier.

Coursera - EPFL
2017

Analyse BigData avec Scala et Spark.

La manipulation de grandes données réparties sur un cluster utilisant des concepts fonctionnels est répandue dans lindustrie et est sans doute lun des premiers usages industriels généralisés des idées fonctionnelles.Grâce à des exemples pratiques dans Spark et Scala, nous allons apprendre quand des problèmes importants liés à la distribution, comme la latence et la communication sur le réseau, devraient être pris en considération et comment ils peuvent être résolus efficacement pour améliorer les performances.

Coursera - EPFL
2016

Programmation parallèle

De nos jours, les téléphones portables et autres ordinateurs ont plusieurs processeurs, l’utilisation de la programmation fonctionnelle afin de faciliter la programmation parallèle est de plus en plus répandue. Dans ce cours, vous apprendrez les fondamentaux de la programmation parallèle, du parallélisme des tâches au parallélisme des données. En particulier, vous verrez combien la programmation fonctionnelle correspond parfaitement au paradigme du traitement des données en parallèle.

edX - BerkeleyX
2015

Introduction au Big Data utilisant Apache Spark

Ce cours tentera d’articuler le résultat escompté des Scientifiques de la Données et ensuite d’enseigner aux élèves comment utiliser PySpark (faisant partie d’Apache Spark)

Coursera - EPFL
2014

Principes de la programmation réactive

Ce cours avancé enseigne les principes de la programmation réactive en utilisant Scala: comment écrire un logiciel composable qui est événementiel, adaptatif à la charge, résistant et réactif en présence d’erreurs. Les concepts couverts incluent les monades, les futures, les observables et les acteurs.

Coursera - Stanford University
2013

Machine Learning

Ce cours fournit une introduction générale au Machine Learning, à l’exploration de données et à la reconnaissance statistique de modèles. Le contenu du cours comprend plusieurs méthodes d’apprentissage supervisé et non supervisé, illustrées par des études de cas et des applications.

Coursera - EPFL
2012

Principes de Programmation Fonctionnelle en Scala

Ce cours de perfectionnement de premier cycle couvre les principes de la programmation fonctionnelle utilisant Scala, y compris l’utilisation des fonctions comme valeurs, récursivité, immutabilité, correspondance de modèle, fonctions et collections d’ordre supérieur et évaluation paresseuse.

ScalaSolution - EPFL
2011

Cours Programmation Fonctionnel

Cours de base Scala enseigné par Martin Odersky

Genève
2001

Certifié Sun programmeur sur la pate-forme JAVA 2.

Certification SUN Java 2

Rational University - Nyon
2001

Conception et analyse avancée orientée objets utilisant UML.

Conceptualisation objet utilisant Rational Rose

Ecole d’Ingénieur de Genève - Genève
1991 - 1996

Diplôme d’ingénieur ETS avec mention spéciale (Prix Landis & Gyr).

Le diplôme a été réalisé en informatique pour Swisscontrol (www.skyguide.ch). L’objectif était de créer une carte météorologique numérique pour le service météorologique de l’aéroport de Genève. Le projet comprenait trois grandes phases: la première est la capture d’une liaison téléphonique par l’intermédiaire d’un port série RS232 avec le traitement des erreurs. La seconde a consisté à la création de fichiers contenant des images représentant la situation météorologique. Dans la troisième phase, ces images ont été animées et paramétrées. Le travail a été effectué sous Windows 3.11 et Visual Basic 3 comme le langage de programmation.


Compétences Techniques

Scala
90%
Java
80%
JavaScript
70%
Python
60%
.NET
70%
Play
90%
Akka
80%
Slick
70%
Html 5
85%
CSS3
70%
MQTT
80%
Unity
70%

Compétences Gestion

Agile
90%
DDD
80%
GTD
90%

Présentation Vidéo

Langues

  • Français: Langue maternelle
  • Anglais: Niveau professionnel
  • Espagnol: Débutant


Example de code

https://github.com/iPomme/scanao - Interface Akka pour piloter le robot Nao

https://github.com/iPomme/espruino_wemos_SHT3x - Module SHT3x pour Espruino


Loisirs

  • Robotique
  • Drones
  • 3D printing
  • iOS développement
  • μC développement
  • Licence de pilote privé VFR
  • Triathlon / Marathon
  • Moniteur jeunesse et sport de Jiu-jitsu (1er Dan)
  • Organisateur de Scala Romandie
  • Trésorier et organisateur de Soft-Shake.ch.


Contact

A l’écoute ...

Me suivre