About

Introduction

ETS engineer with international experience of more than ten years in the field of architecture, design and development of distributed software for the banking industry and others. Ability to lead a project on its own or in a team, from business requirement to technical implementation. early adopter of reactive manifesto (www.reactivemanifesto.org) and promoter of such architecture. 8 years of experiences with Scala and Akka.

Quotation

Imagination is more important than knowledge. For knowledge is limited to all we now know and understand, while imagination embraces the entire world, and all there ever will be to know and understand.

Albert Einstein

Experiences

Romande Energie - Lausanne EPFL, Switzerland
2018 - Today

Data & System Architect

Design an IoT (Internet of Things) platform to test new business models on the energy area.

Main technologies :

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
- Geneva, Switzerland
June 2018

Senior Software Developer (Freelance)

Design and development of a reactive architecture to handle flight information.

Main technologies :

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

Crossing-Tech - Lausanne EPFL, Switzerland
2009 - 2017

Head of Technology

Lead the build of a specialised IoT data plateform.Based on years of data integration and reactive platform experiences, this IoT platform will make possible to implement your project in a short amount of time using current state of the art technologies.

Implementation of a reactive architecture, using event sourcing and CQRS in order to open new digital channels for the Altares company.

Technical advisor for the future architecture of the associative database, namely AtomicDB.

Prototyping, logo design and direction of the Babel project. The Babel project is a specific integration language that aims to use the advantages of scala’’s modularity, typing and lambda in order to create a quality code and create an abstraction of the integration definition. The project is open source and the code is on Github.

Collaboration with l’HEIG-VD for frameworks evaluation. The purpose of this project was to evaluate technology; Hadoop / HBase, Storm and Spark streaming in order to calculate in real time the possible leak of information of company confidential documents. Detection is performed using Near Duplicate Detection techniques.

Supervision of a student for his master project at the EPLF. The subject was "Distribution of the Enterprise Integration Patterns with Akka, a framework based on the Actor model".

Developed the integration between the ATM and the back-end for the Saudi Hollandi Bank. Entirely coded in Scala and in production since 2011.

Technical lead for the Connectivity Factory product.

  • Establishment of bug tracking, issue tracking and project management (Confluence / JIRA)
  • Establishment of Agile process (Scrum then Kanban)
  • Establishment of continuous integration (Maven, GIT, TeamCity)
  • Architecture choices and development (in Scala) of the « Connectivity Factory ™ » product.
  • Product roadmap management.
  • World Wide product presentation and demonstration.

Clio - Martigny, Switzerland
2009

Senior Software Architect

In the context of rewriting the components of the NOVA solution at the "Groupe Mutuel" (Health insurance). Architecture of the database, EJB and front end the parametrization of the solution. As technical leader developed the solution.

Main technologies :

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

Temenos SA -
Geneva, Switzerland
2004 - 2009

Senior Software Architect

Part of the team whom designed, developed, tested and deployed the SOA company solution. The solution is based on JBI (Java Business Integration) and ServiceMix (FUSE) as implementation. Interoperability was in mind during the design as the solution exists on a native Windows application as well. The solution generates and deploys web services automatically from the back-end banking software’s meta data. In charge of writing a web console AJAX enabled to manage a centralized configuration. Created training course and laboratories to give infra-company training.

Main technologies :

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

Implementation for the Temenos demo center of a J2EE solution. This has been done on the Oracle application server version 10g. The solutions implements two clusters of two machines running Suse as operating system.

Main technologies :

J2EE, ORACLE AS

Temenos UK -
Hemel Hempstead, UK
2002 - 2004

Senior system developer

Created the design and developed a middleware solution to connect the Temenos graphic user interface to the back-end banking software using state full connections and allowing workload management. This solution was first written in C and then fully migrated to JAVA. This solution has been deployed on Windows, Linux, AIX, HP-UX, S390 and AS400. The communication is secured with SSL. Developed a testing framework to improve the software quality. Managed the design and development alone then trained people to assure the customer support.

Main technologies :

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

Built an installer for the company, the request was multi-platforms which involved a graphic and console mode. The installer is running on Windows, Linux, AIX, HP-UX.

Main technologies :

Java, Swing, JNI, XML (JAXB), Windows registry.

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

Software developer

Migration of a multi-value database from C/C++ to J2EE.

Main technologies :

C/C++, JAVA.

EJB on Websphere (3.5/4).

Integration of the network dispatcher of IBM (Edge Server)..

Main technologies :

JAVA, Edge server.

Integration of Perforce in jBuilder 5..

Main technologies :

JAVA, jBuilder.

Temenos SA -
Geneva, Switzerland
1999 - 2001

Software developer

Design, development, tests and integration of the Internet banking solution for Globus banking systems. First version in Visual Basic 6 and rewritten in JAVA.

Main technologies :

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.

Main technologies :

Visual Basic 6.

Groupe Sopra -
Geneva, Switzerland / Annecy, France
1997 - 1999

Software Engineer

Worked on Internet solution entry and validation of life insurance contract proposals (Object-oriented pilot project).

Main technologies :

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

Banking reporting software (wide project, 60 Engineers).

Main technologies :

Oracle, SQL, Visual Basic 5.

Development of specific programs for Givandan-Roure around BPCS v.6.4 using ASSET(SSA) programming language on AS400.

Main technologies :

ASSET, DB2, AS400, SQL.

E.I.G (Engineer School of Geneva)
Geneva, Switzerland
1997

Telecoms Lab Assistant

Developed an ISDN (S.T.U. interface) tester.

Main technologies :

C, 68HC11.

Migrated SwissControl (SkyGuide) diploma project to NT4 using Visual Basic 4 and bring the product to production.

Main technologies :

Visual Basic 4, NT4

Agena SA - Geneva, Switzerland
1992 - 1994

Technician

In-house and customer servicing, training and supervising three apprentice electricians.

Main technologies :

Satellite, Bus I2C.

Télé SOS - Geneva, Switzerland
1991 - 1992

Technician

Repair of TV / Radio in workshop.


Studies

Coursera - EPFL
2017

Functional Programming in Scala Capstone.

In the final capstone project you will apply the skills you learned by building a large data-intensive application using real-world data.
You will implement a complete application processing several gigabytes of data. This application will show interactive visualizations of the evolution of temperatures over time all over the world.
The development of such an application will involve:

  • transforming data provided by weather stations into meaningful information like, for instance, the average temperature of each point of the globe over the last ten years ;
  • then, making images from this information by using spatial and linear interpolation techniques ;
  • finally, implementing how the user interface will react to users’ actions.
Coursera - EPFL
2017

Big Data Analysis with Scala and Spark.

Manipulating big data distributed over a cluster using functional concepts is rampant in industry, and is arguably one of the first widespread industrial uses of functional ideas. This is evidenced by the popularity of MapReduce and Hadoop, and most recently Apache Spark, a fast, in-memory distributed collections framework written in Scala. In this course, we’ll see how the data parallel paradigm can be extended to the distributed case, using Spark throughout. We’ll cover Spark’s programming model in detail, being careful to understand how and when it differs from familiar programming models, like shared-memory parallel collections or sequential Scala collections. Through hands-on examples in Spark and Scala, we’ll learn when important issues related to distribution like latency and network communication should be considered and how they can be addressed effectively for improved performance.

Coursera - EPFL
2016

Parallel programming

With every smartphone and computer now boasting multiple processors, the use of functional ideas to facilitate parallel programming is becoming increasingly widespread. In this course, you’ll learn the fundamentals of parallel programming, from task parallelism to data parallelism. In particular, you’ll see how many familiar ideas from functional programming map perfectly to to the data parallel paradigm.

edX - BerkeleyX
2015

Introduction to Big Data with Apache Spark

Organizations use their data for decision support and to build data-intensive products and services, such as recommendation, prediction, and diagnostic systems. The collection of skills required by organizations to support these functions has been grouped under the term Data Science. This course will attempt to articulate the expected output of Data Scientists and then teach students how to use PySpark (part of Apache Spark) to deliver against these expectations. The course assignments include Log Mining, Textual Entity Recognition, and Collaborative Filtering exercises that teach students how to manipulate datasets using parallel processing with PySpark.

Coursera - EPFL
2014

Principles of Reactive Programming

This advanced course teaches principles of reactive programming using Scala: how to write composable software that is event- driven, scalable under load, resilient and responsive in the presence of failures. Concepts covered include monads, futures, observables and actors.

Coursera - Stanford University
2013

Machine Learning

This course provided a broad introduction to machine learning, datamining, and statistical pattern recognition. Course content included several methods in supervised learning and unsupervised learning, illustrated through case studies and applications.

Coursera - EPFL
2012

Functional Programming Principles in Scala

This advanced undergraduate programming course covers the principles of functional programming using Scala, including the use of functions as values, recursion, immutability, pattern matching, higher-order functions and collections, and lazy evaluation.

ScalaSolution - EPFL
2011

Functional Programming

Functional Programming in Scala from Martin Odersky

Geneva
2001

SUN certified programmer for java 2 platform.

SUN Certification Java 2

Rational University - Nyon
2001

Advanced Object-oriented analyze/conception with UML.

Object-oriented analyze/conception based on Rational Rose

Engineering School of Geneva. - Geneva
1991 - 1996

ETS diploma (ETS Bachelor of Science) with special mention (Landis & Gyr price).

The diploma was carried out in the computer science for Swisscontrol (www.skyguide.ch). The aim was to complete a digital weather map for the Geneva Airport Weather service. The project consisted three major phases: the first was the capture of a telephone link via an RS232 serial port with error handling. The second consisted of creating files contains weathers images. In the third phase, these images were animated and parameterized. The work was carried out under Windows 3.11 and Visual Basic 3 as programming language.


Technical knowledge

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%

Management knowledge

Agile
90%
DDD
80%
GTD
90%

Work

Languages

  • French: mother tongue
  • English: professional level
  • Spanish: Beginner


Code sample


Hobbies

  • Robotic
  • Drones
  • 3D printing
  • iOS dev
  • μC dev
  • VFR Pilote
  • Triathlon / Marathon
  • Jiu-jitsu (1er Dan)
  • Scala Romandie organiser
  • Soft-Shake.ch organiser.


Contact

Listening ...

Follow me