Some examples of my work

Maintenance, développements et montées de versions de 250 serveurs Alfresco 5.0

🗓️ 07/2022 - maintenant
🏢 Administration

Au sein d'un équipe composée de 12 personnes (techniques et fonctionnels) fonctionnant en mode agile :

  • Reprise d'un projet Alfresco 5.0 et de 2 applications web Java (Spring, Struts, Jsp ...)
  • Maintenance du code, développement de nouvelles fonctionnalités
  • Mise en place de CI/CD
  • Mise en place de contrôles qualité (tests unitaires, pull requests avec code reviews)
  • Maintenance des 250 instances en production
  • Préparation d'une montée de version vers Alfresco 5.2, puis 7.3, ainsi que de toute la pile logicielle, pour les 250 serveurs.
⚒️ Alfresco 5.0, Alfresco 5.2, Alfresco 7, Share, Java 8-11, Spring

Continuation of a new Alfresco 6 project, and upgrade to Alfresco 7

🗓️ 11/2021 - 11/2022
🏢 Conseil départemental de Seine-et-Marne

Continuation of a freshly started Alfresco 6 project which aims to store documents related to accounting and public contracts for a french public institution, on a High Availibility architecture.

  • Custom developments with rules, data models, smartfolders and Share UI
  • Update of project sources and SDK to target Alfresco 7
  • Modification of open source modules to match specific needs or to be compatible with Alfresco 7
⚒️ Alfresco 6, Alfresco 7, Share, Java 11, Spring, Smartfolders, dataLists

Development of a web app for marketing online courses

🗓️ 05/2021 - 01/2022
🏢 Ads Factory

Conception & development of a MOOC web application enablign students to follow online video courses about marketing, to validate their knowledge by completing quizzes, to chat with other students or teachers, to follow a predefined progression path, with the possibility to buy all the steps together or one by one.

Backend on Supabase (Postgresql, Postgrest, Amazon S3) and some serverless Vercel functions.
Frontend frontoffice & backoffice made with Svelte and TailwindCSS, hosted on Vercel.

Integration with ActiveCampaign for provisionning the students, Vimeo to host videos, and Calendly to allow students to book private appointments with teachers if they face some learning diffculties.

⚒️ Supabase, PostgreSQL 13, TypeScript, Vercel functions, Svelte JS, Tailwind CSS

Alfresco maintenance & development

🗓️ 02/2021 - 02/2023
🏢 Opcomobilités

Maintenance, optimization and developments on an Alfresco 4.2 instance which stores 5 millions documents with a 2.1 To contentstore and with a high documents throughput (between 6k and 15k / day).

⚒️ Alfresco 4.2, Share

Java application integrated with ActiveCampaign CRM

🗓️ 12/2020
🏢 Gamezpack

Develoment of a webapp to manage video-games activation key giveaways in the context of an Advent calendar.
Integration with ActiveCampaign CRM to recover buying informations on the customers and send them the keys.

⚒️ Java 11, JHipster, Angular, Spring boot, ActiveCampaign API + Automations, Docker, Debian 10, certbot, Postgresql

Integration between Smoobu and Dormakaba Webkeys

🗓️ 11/2020
🏢 Hotels UNE CHAMBRE EN VILLE

Automating the creation of an access code to a room when a new booking occurs.

  • Writing of a simple Java 15 app.
  • Use of the Smoobu Webhook to notifiy the program when a new booking occurs.
  • Automation of the creation of an access key to a room with the Dormakaba Webkeys API, giving the apartment id and the staying dates.
  • Sending of the access key to the customer with the Smoobu API and by SMS with mail-to-sms from SMSFactor.
⚒️ API REST SMoobu, API REST Webkeys Dormakaba, Java 15 preview, Jetty, IIS, certbot, Windows Server, SMSFactor

Multilingual Alfresco search

🗓️ 07/2020
🏢 Archery Consulting

Setup of :

  • automatic language detection of a document when it is uploaded (between 3 supported languages, french, english and german)
    • storage of the document language in a metadata
    • enabling the filtering on a document language in search screen
    • writing and run of a patch to detect the language of existing documents
  • cross-language synonyms search with Solr4, with the help of a custom synonyms dictionnary holding translatiosn of some specific keywords
⚒️ Alfresco 5.2, Share 5.2, Solr 4, Java

Alarms monitoring

🗓️ 06/2020
🏢 Systel SA

Addition of a feature allowing to enabel/disable alarms from a web application for alarms monitoring, with alarms being managed by a third-party provider.

⚒️ ActiveMQ, MQTT, Java, API REST, AngularJS, SQL Server

Enhancement of a webapp to manage emergency services

🗓️ 03/2020 - 05/2020
🏢 Systel SA

Performances enhancements and features development on a webapp used to manage emergency services.

SQL qeries optimization, lightering of HTTP payloads, Java concurrent programming, PDF creation with Java with iTexte, cleaning and refactoring of a client AngularJS app.

⚒️ Java 8, SQL, AngularJS, SQL Server

Alfresco migration

🗓️ 12/2018 - 06/2019
🏢 Archery Consulting

Setup and customization of Alfresco & Share 5.2 as a replacement for a Windows shared file server.
Integration of the existing documents with metadata based on their location on the fileserver.
Relocation of the files according to the new file plan.

Massive use of datalist to feed allowed values lists for some metadata.
Dynamic creation of smartfolders upon datalist item creation.

⚒️ scripting Shell, Solr 4, Alfresco 5.2, Share 5.2, Smartfolders, dataLists, Java, JS

Workfows history download feature on Flowable

🗓️ 01/2019
🏢 Allianz

Flowable is an open-source workflow engine based on Activiti.

Addition of a page in FLowable allowing a user to download the history of a BPMN process instances in a CSV file.
The feature is available only for some roles and the user can filter the history with a time interval and the process id. The extracted data include the process id, the instance id and some workflow variables.

⚒️ Spring boot, Spring , AngularJS, Flowable 6.4.0, Flowable-ui 6.4.0, Java

Flattening of the groups tree in Alfresco

🗓️ 12/2018
🏢 Saint-Gobain

The Alfresco instance has hundreds of groups organized in a hierarchical tree. These groups are improted automatically from the customer's LDAP server. The customers would like to reorganize these groups in Alfresco by removing the hierarchical links between them, i.e by putting all the groups at the same level in a flat layout.

Writing of a batch script to remove parent-child relationship between groups, with some exceptions.

⚒️ Alfresco 5, LDAP, Java

Backing up the ECM team

🗓️ 08/2017 – 05/2018
🏢 Arval
📍 Rueil-Malmaison

Joined the Alfresco team at Arval to work on several projects :

  • Standardization of the ECM tool :
    • Migration of the different ECM solutions of the different businesses of the group into a single Aflresco.
    • Redirection of the existing data flows into Alfresco.
    • Transformation of the existing business data models from other ECMs to a generic Alfresco data model.
    • Data migrations.
  • Development of a business-oriented front-end for Alfresco in AngularJS, and development of the related APIs in Alfresco.
  • Design of Jenkins jobs to improve continuous integration of the Alfresco part at Arval.
  • Maintenance of the running Alfresco applications, « customer support ».
⚒️ Alfresco 5.1, Jenkins, Java, AngularJS, LDAP

Backing up the ECM team

🗓️ 05/2017 – 08/2017
🏢 Interforum
📍 Ivry-sur-Seine

Joined the Alfresco team at Interforum to help them maintain the Alfresco system, develop new functionnalities and prepare a version upgrade from 4.2 to 5.2 of several Alfresco instances, each of them serving a different business purpose.

⚒️ Alfresco Share 4.2 5.2

Conception, development, lead and management of an Alfresco project

🗓️ 10/2016 – 05/2017
🏢 Saint-Gobain
📍 La Défense

Conception and development as a lead developer and architect of a HR documents management project with the following requirements :

  • Daily automatic creation and update of the file plan in Alfresco from external data, automatic update of the documents metadata and permissions from these same data.
  • Simple validation workflows .
  • Deep Share customizations, creation of specific Share pages. Creation of a specific workflow tasks validation screen including the preview of the processed document, and custom search filters for workflow tasks.

Requirements study with the customer, writing of the technical specifications, costing of the project, conception and develoment of the Alfresco services and Activiti workflows with a teammate, setup of the daily data flows with the Saint- Gobain team.

⚒️ Alfresco 4.2, Java, Javascript, Share, YUI, Spring Surf, LDAP, Workflows Activiti BPMN

Alfresco/Share developments and maintenance

🗓️ 03/2016 - 09/2016
🏢 Saint-Gobain
📍 La Défense

Occasional interventions to maintain and evolve the Alfresco platform at Saint- Gobain, which is shared between different businesses, each of them having a part of the file plan, specific data models, workflows and Share customizations.

Development and optimization of Activiti workflows, Share customizations, integration of a JQuery widget and of a new theme in Share.

⚒️ Alfresco 4.2, Java, Javascript, Share, YUI, Dojo, Aikau, JQuery, Spring Surf, LDAP, Workflows Activiti BPMN

Alfresco audit and developments

🗓️ 02/2016
🏢 BIBLIOTHEQUE PUBLIQUE D’INFORMATION
📍 Paris
  • Auditing of existing Alfresco customizations, and editing of the existing code to implement best practices.
  • Development of an archiving functionnality to archive folders in .zip files.
  • Improvements on the existing Activiti workflows.
⚒️ Alfresco 5.0.1, Java, Activiti

Alfresco version upgrade, audit and developments

🗓️ 11/2015 – 02/2016
🏢 Filhet-Allard
📍 Bordeaux

As a junior Alfresco consultant, help on a version upgrade project in Bordeaux :

  • Help in witing the technical specifications.
  • Bugs hunt prior to code upgrade (for the version upgrade).
  • Refactoring of dangerous policies (ex: onMove, onUpdate, onDelete).
  • Upgrade of the code to version 5.0.2.
  • Tests.
⚒️ Alfresco 4.2, 5.0.2, Java, Javascript, YUI, Aikau, Share

Intervention at several Alfresco customers for the official Alfresco customers support.

🗓️ 2016
🏢 Alfresco

Airbus – Toulouse – 5 days :

Help for the realization of a POC to install Alfresco 5.1 as the new ECM solution for Airbus engineers, challenging Sharepoint.

Danish Police – Copenhagen - 5 days :

Help migrating a project from Alfresco 4.1 to 5.1 (Alfresco and Share). Training of the customer’s Alfresco team on Share and Aikau development, teaching of the best practices.

Gemalto – Marseille – 3 days :

Intervention on a final-phase project to help setting up specific interfaces for workflows and statistics on the stored data in Alfresco.

⚒️ Alfresco, Share

Alfresco - documents synchronization on IPad

🗓️ 05/2015 - 2017
🏢 LABORATOIRE SERVIER
📍 Suresne

Realization of a project allowing to synchronize documents between Alfresco and IPads using the Bookends application (the Alfresco application didn’t fulfill the customer’s requirements) :

Development of :

  • a Webscript to recover creations, updates and deletions from Alfresco.
  • a robot to get the documents from Alfresco and put them in the Bookends server.

Writing of the documentation.
Occasional installation of releases at the customers.
Tests with the customer.

⚒️ Alfresco 5.0.1, Java, Javascript, YUI, Aikau, Share, Freemarker

Alfresco developments and maintenance

🗓️ 05/2015 - 07/2015
🏢 Geodis

Maintenance and improvement of the Alfresco project fully written in javascript (webscripts , behaviors, tules scripts).

⚒️ Alfresco 4.1, Javascript, Freemarker