I love coding - do you?

Building software is not just a matter of technical know-how, so open-mindedness, flexibility and curiosity are also part of my extensive skill set.


With a passion for all things technology and by leveraging more than 12 years of experience as an IT consultant, developer, and ScrumMaster, I am keen on sharing my vast knowledge.

My work

I create software with a fine-tuned combination of technical knowledge, experience, and an analytical mind, sprinkled with discipline.

I perform my tasks and understand my work with a comprehensive approach in order to deliver work that adds value to your projects.
Technology itself is definitely not the goal, but it is a good path to reaching it.
I design, code, and deploy web-based software or scalable data-stream-processing platforms using open-source technologies.
I can support you for the whole project, from business analysis to rollout and further operations and evolutions.
Or do you need a Java, Golang, or web developer to expand your team? Bring me on board!

Here is in detail what I can do for you:
Business analysis
Conception and software architecture
Programming
Automated testing
Continuous integration
Continuous delivery
Code quality control
Bug fixing
Evolutions
Support for agile projects

Are you looking for these or other projects and skills? Contact me and let’s discuss it.

Experiences

I started to program software as a teenager, and I have been earning my living from it for more than 12 years.
Following my Master’s degree, I have worked in multiple companies—from small to big, innovative businesses with quality awareness—and I took over technically or organizationally demanding challenges.

  • Developer, technical lead, and development manager in IT-services companies

    Developing, designing, collecting the requirements, discussing with users and customers, and animating workshops were part of the work I did in those companies, with different levels of responsibilities.

  • Senior developer at SAP in France

    I contributed to huge global projects involving 100 developers working with Scrum. That is also when I got an appreciated ScrumMaster.

  • Lecturer

    Since 2006, I have been lecturing at the Ales School of Mines for students in Master’s degree curriculum. Main topics are Scrum, architecture and good practices of development.

  • Freelancer

    I have been a successful freelancer since 2012 and have been facilitating large and small multinational projects for start-ups and major players across Europe to drive their competitive edge.

Since 2012, I’ve accomplished a large variety of projects. Some are pure consulting, others are development-oriented.

Take a look at some of them:

Business analysis

Business analysis and project management support for a financial services firm

Business analysis and project management support for a financial services firm

Client

  • Industry:
Financial Services
  • Revenue:
€12 Million
  • Employees:
45
  • Location:
Austria

Project

  • Integration of subsidiary bookkeeping operations into the corporate system
  • Automation of the conversion and reporting process

Objectives

  • Analyze the business processes and the local regulation of the subsidiary
  • Clarify the relationship between business and IT functions
  • Optimize the level of integration between operational and accounting staff and systems
  • Prepare business data for the automated conversion into the corporate accounting software

Challenges

  • Fix the distrust of the accounting team, which saw its whole way of working change
  • Identify process improvements for time and resource saving; conduct the change
  • Reconcile local business specifics with the corporate core framework
  • Run the missing preparatory gap analysis between start and target situation
  • Past difficulties and postponements caused high opposition to this project; there was a need for a highly diplomatic and competent approach to make the project succeed.

Solution

Due to the critical project status and the high opposition amongst staff and managers, it was necessary to get work done at the human level as well as on the technical side, sometimes by analyzing entire Excel sheets with accounting events. Past difficulties led to missing resources, so a global approach as a project manager was needed.
More specifically, I:
  • analyzed the project context;
  • ran a business and technical gap analysis and identified changes by preserving the existing identity and culture of the subsidiary;
  • proposed a new plan to include all the constraints;
  • acted as an interface between operational, accounting, and IT functions, at the local and the corporate level, in order to convert the business requirements into technical solutions and the technical feedback into business impacts;
  • designed technical solutions for process improvements and validated the development after the programming; and
  • developed SQL scripts to prepare the data for the initialization of the new accounting process.

Results

I successfully fulfilled the mission, and the project finally landed a few months later.
As a consequence of my interface role and my comprehensive approach to the issues, some long-time issues were eventually fixed, and the time-to-solution accelerated.
The solutions I designed secured the business processes and the conversion to accounting operations, and made it easier for the users to achieve their tasks.
The initialization scripts I developed contributed massively to an error-free migration to the corporate system.

Key Success Factors

  • Excellent understanding of the business and accounting operations as well as the regulatory framework
  • Constant endeavor and exchanges between the stakeholders to make operations, accounting, and IT reach agreements
  • Awareness of the cultural and linguistic gaps and an ability to close them
  • Fast understanding of the desktop software to propose and design improvements
  • Experience with and quick understanding of the financing and accounting business, which brings credibility as an IT person among the business and accounting functions
  • Excellent skills in Transact-SQL to quickly develop the migration scripts

Design and development

Data processing system for an Ecommerce and Emarketing platform for an insurance provider

Data processing system for an Ecommerce and Emarketing platform for an insurance provider

Client

  • Industry:
Insurance
  • Revenue:
€1.5 billion
  • Employees:
3,100
  • Location:
Worldwide

Project

Design and development of a data-management platform to collect, transform, and distribute data between a large variety of sources and targets.
The marketers use the software to manage insurance products sold on the Internet and to prepare and run campaigns.
The software has to be interfaced to the corporate, subsidiary, and partners’ systems using heterogeneous technologies.

Objectives

  • Create a back end system to faster collect and transform high data volumes from numerous sources
  • Distribute the data in a normalized format to different sets of e-commerce and e-marketing platforms
  • Deploy the back end from scratch for any subsidiary in less than two months, including local specifics and regulation
  • Allow marketers to create brand-new products from scratch without IT support

Challenges

  • Deal with a lot of heterogeneous data sources, most of them being unknown at the beginning of the project
  • Propose solutions, despite no clear vision nor requirements from the business team
  • Often change the short-term planning to adapt the software to new opportunities or strategies
  • Process millions of records in minutes and serve them in seconds
  • Imposed teamwork with a third-party IT provider in charge of the front ends
  • Work with different database systems

Solution

I designed and developed a Java-based back end based upon the Spring framework and using technologies as standardized as possible: JPA, REST, SOAP, among others.
The whole module-oriented platform was a web application running on Tomcat 8 and using MySQL, PostgreSQL, and Oracle DB.

More specifically, I used the following:
  • Spring Core for the dependency injection
  • Spring Batch for the data stream processing
  • Spring Security
  • Jersey for the REST implementation
  • Hibernate for the low-volume database operations
  • A tailor-made JPA-annotation-based module, able to persist thousands of records per second to the database for the high-volume operations
  • A tailor-made plugin strategy to easily integrate external modules with a few lines of code
  • Vaadin for the administration UI
The system was highly configurable and extensible. Thanks to Maven, each build only contained the required components for the targeted environment.
Finally, I set up the Scrum framework in order to match project management with the speed and flexibility expectations from the business function.

Results

The software overreached the goals and allowed deployments from scratch in hours thanks to continuous delivery. Most of the time was spent on configuring the environment and monitoring. The modular architecture allows new features to be developed, tested, and integrated very fast. New subsidiaries can be operational shortly after their decision to use the software, improving their velocity, time-to-market, and ability for change.
Its performance and reliability and the usage of mature technologies made it cheap to host and maintain. No major bug was detected since operation started.
Furthermore, the detailed monitoring of all the activity on the platform made the investigation of potential issues incredibly fast and made it possible to detect the real cause of the issues in minutes.
Each service of the platform is under constant monitoring to detect anomalies in the usage or execution. The number of calls and the execution time were mainly used to detect inconsistencies in the front ends.

Key Success Factors

  • Short ramp-up to learn about the customer, its business, and its culture
  • Usage of agile practices to constantly match the developments to the expectations, even when very volatile
  • Good technology stack: robust, flexible, and adapted to the specific requirements
  • High software quality improved customer satisfaction and accelerated the development of new features

Quality management

Software quality analysis and refactoring for a financial services firm

Software quality analysis and refactoring for a financial services firm

Client

  • Industry:
Financial Services
  • Revenue:
€90 Million
  • Employees:
400
  • Location:
United Kingdom

Project

Refactoring of contract-management software for a financial services firm, a core system that has constantly grown over the past decade and runs critical business operations.

Objectives

  • Run a deep analysis of J2EE software to evaluate the reasons behind its poor performances and high volume of bugs
  • Propose a plan to fix the issues

Challenges

  • No automated test at all; no technical documentation; outdated business requirements documentation
  • No access to running environments
  • No support from the development team and even hostility from leads

Solution

I ran two complementary analyses. On one the hand, I used SonarQube to provide impartial measures, and on the other hand, I dove into the code to evaluate the potential design issues.
As a result, I provided an aggregated summary of the issues detected on both evaluations and a detailed plan to refactor the software with clear goals: removing all dead code and most duplicates, lowering the coupling, and increasing the consistency and reusability of the components as well as the overall testability of the software.
The plan described how to refactor the software based upon a domain-driven strategy and gave a clear step-by-step workflow to achieve it. The expected resulting architecture was composed of modules to isolate the responsibilities and force the usage of abstraction. Some technical components had to be replaced by state-of-the-art solutions and libraries.
I also set up automated integration tests to support the refactoring and prevent future potential regressions.

Results

The execution of the plan massively reduced the number of lines of code and drastically improved the overall performances as well as the effectiveness of the developers in fixing bugs. The coverage of unit tests rose from 0% to 65%, during the refactoring period alone.

Technologies Supported

  • Maven and Jenkins for the build and tests automation
  • Selenium and JMeter for the integration tests
  • SonarQube for the static code analysis

Key Success Factors

  • Long experience in the financial services sector and with similar software to better evaluate the responsibilities and behavior of the software
  • Good knowledge of the technical stack and its state-of-the-art status
  • Strong determination to succeed

Continuous integration

Setup of a CI environment, automated tests and delivery pipeline for a manufacturer of special-purpose-vehicles

Setup of a CI environment, automated tests and delivery pipeline for a manufacturer of special-purpose-vehicles

Client

  • Industry:
Vehicle Manufacturing
  • Revenue:
€5 Million
  • Employees:
30
  • Location:
Europe

Project

Setup of continuous integration and delivery for software designed to process and render embedded data of connected vehicles.

Objectives

  • Automate the build, qualification, and delivery onto a cloud-hosted machine
  • Ability to run several builds per day and deploy a stable version or hotfix in five mouse clicks
  • Measure the quality of the software and detect deteriorations and regressions
  • Keep the history of all analyses done in the past

Challenges

  • Very low budget
  • No dedicated team or human resources
  • Different environments and databases supported

Solution

I set up a continuous-integration and delivery environment on Jenkins using pipelines.
With a small set of reusable pipelines, different builds for different contexts could run with very low maintenance.
The builds were either manual, scheduled, or kicked off by commits on Git or other builds.
The full deployment process is a configurable build to select the environment and kind of build to deploy.
Jenkins uses a master machine and several lightweight agents in the cloud for scalability and control of costs.
Once a night, a full build with coverage and analysis with SonarQube runs to provide impartial quality statuses.
Tests run to volatile third-parties Docker containers to check all the environments and databases with no need for system administration for each specific one.

More specifically, I used the following:
  • Jenkins for the build and tests automation
  • SonarQube for the static-code analysis
  • Maven to configure the building and testing
  • JUnit and Clover for the test coverage
  • Cargo plugin for Maven to test the deployment on several systems (Tomcat, Jetty, JBoss)
  • Docker to test on different database systems (MySQL, PostgreSQL, Oracle XE)
  • Gatling for the integration tests of the API

Results

The maintenance cost was very low. The system only required a few updates to reflect major changes in the software. Thus, the changes in the Jenkins pipeline became part of the development process, which made the programming consistent at any time with building and deploying, whatever the branch.
The monthly invoice for the cloud-hosting was less than €70.
Technical debt was specifically checked to stay below 2%, and critical or major technical issues were fixed before going into production, only a couple of hours after the developers coded the related features.

Technologies Supported

  • Jenkins for the build and tests automation
  • SonarQube for the static code analysis
  • Maven to configure the building and testing
  • JUnit and Clover for the test coverage
  • Cargo plugin of Maven to test the deployment on several systems (Tomcat, Jetty, JBoss)
  • Docker to test onto different database systems (MySQL, PostgreSQL, Oracle XE)
  • Gatling for the integration tests of the API

Key Success Factors

  • Experience with continuous-integration/-delivery patterns and Jenkins in particular:
    • Clear and repeatable workflow
    • Build scripts stored in the code repository, next to the application code
    • Reusable pipeline scripts in Jenkins to decrease the side effects of changes
  • Good skills at
    • administrating Linux and Docker and
    • building Docker images for specific needs

Skills

As an avid technology aficionado, I am very keen on testing and using new solutions and challenging myself.

Java & Co

Java is no longer just a programming language. It is a real ecosystem made of numerous open-source tools, platforms, software, and even languages (Groovy, Scala, Kotlin). It is the most used platform for businesses, just behind the unalterable C. Its latest evolutions and open-source contributions significantly improved code effectiveness and performance.

I started coding in Java in early 2000 and never stopped, following the evolution of the state-of-the-art ecosystem and learning the development tools to work more effectively. I now have vast experience and know-how that I would be delighted to share with you.

Go (Golang)

You may or may not like Google, but I think they did a good job when creating the Go language. Fast, secure, natively concurrent, and clear, Go provides the advantages of many of its ancestors. Despite its youth, it is definitely positioning itself as a game changer.


Go is increasingly used for back end systems dealing with high traffic and high volumes of data—the perfect friend for API-based platforms!

I cannot compare my experience level with Java, but I’ve dived deep into the language. I would be very happy to contribute to one of your projects.

Testing

“Coding is testing” and “First you learn to code, then you learn to test”.


You might be familiar with these sentences, and indeed, experienced and skilled programmers consider testing as a unalterable member of coding. Furthermore, automated, massive tests ensure that the software keeps on behaving as intended when becoming more complex, and tests are essential to bug fixing and code understanding.

Unit tests:JUnit, Mockito, Golang testing and benchmarking
UI tests:Selenium
API and performance tests:JMeter, Gatling

Web

I always emphasize the position of the users in an IT solution-they deserve the best possible experience.
However, a great user experience has to be provided with reasonable costs. Web technologies such as HTML, JavaScript, and CSS (including their latest evolutions) leverage the investment with great user experiences and fast development and deployment.

I have been developing web solutions for more than 15 years. I frequently use HTML and JavaScript libraries like jQuery and CSS for user interface development.

I am always focusing on optimal usability and performance coupled with strong security for users and companies.

Programming & Execution Environments

What do I do with the code once I have written it? Well, I simply share it, test it, control it, publish it, and even more.

Running software can be done in so many ways: on premises or in the cloud, on bare-metal servers, virtual machines, or containers.

Code versioning:SVN, Git
Build tools:Maven, Gradle, Gulp
Continuous integration, delivery:Jenkins, SonarQube
OS administration and scripting:Linux
Hosting & Virtualization:Google Cloud, Heroku, Docker
Monitoring:Graphite with Grafana

Database systems

Managing and processing data without strong database systems is hardly imaginable. Formerly exclusively based upon the SQL paradigm, database ecosystems are now much more varied, with NoSQL and even NewDB systems. There is now an optimal choice for each case, and it is no longer rare to manage data concurrently in different systems with different purposes.

SQL:MySQL, PostgreSQL, Sybase ASE (and Transact-SQL) and Oracle DB
NoSQL:MongoDB and Apache Cassandra

Languages

Speaking four languages, I can also be a link between your distributed teams.

French:Mother tongue
English:Fluent
German:B2 in the Common European Framework of Reference for Languages
Spanish:Good knowledge

Are you looking for these or other projects and skills? Contact me and let’s discuss it.

Contact me

Are you convinced or just curious? Leave me a message. I’ll be happy to discuss potential projects.