You're seeing this page as if you were . The main menu is still yours, though. Exit from immersion
Laurent RebiereLR

Laurent Rebiere

Ingé expérimenté Full-stack AI DTC CQP

€600/day
La Rochelle, FR
8-15 years

Average response time: 1 hour

About Laurent

Diplôme d'ingénieur ENSAM juste en poche, j'ai co-fonder ma SSII en 1999. Mes premiers projets de développement furent des bibliothèques (dll) de calcul d'optimisation (placement automatique 3D sous contrainte, affectation fonction/matériel sous contrainte, production automatisée de plans) pour le compte d'un éditeur de CAO Electrique.
Puis en 2000, nous avons réalisé un moteur d'optimisation de processus de fabrication de produits imprimés avec pour finalité le pricing sous forme de web-service.

Ces premiers projets furent menés à bien grâce à notre environnement de développement maison basé sur le langage universitaire Claire spécialisé pour les problématiques de Recherche Opérationnelle (AI). J'ai participé à l'enrichissement fonctionnel de cet environnement via l'écriture de module d'interconnexion MySql, HTTP, HTML, PDF, XML, SOAP, JSON etc ... écrit en Claire/C++.

Depuis 2003 ma société édite sa propre solution full web et SaaS de devis optimisé de produit imprimé. Nous n'avons cessé de faire progresser fonctionnellement sur des problématique complexes d'AI, mais aussi de l'ouvrir et l'intégrer à d'autre logiciel comme Prestashop, vTiger, et des solutions clientes spécifiques de gestion ERP ou CRM.

Depuis mes débuts, j'ai rempli des fonctions de MOA, MOE, Product Owner, Lead developper, en architecture 3 tiers sur des back-ends Claire/C++ ou PHP des bases MySql, PostgreSQL, Oracle et des FrontEnds HTML/CSS/JS dans des framework divers Prestashop, vTiger etc... J'ai appris à m'auto-former efficacement face à des nouveaux environnements comme récemment sur WebGL, SVG pour une fonctionnalité de Design-to-cost dédié à des produits 3D pliés.

J'apprécie les projets d'optimisation des processus complexes comme les CPQ (Configure-Price-Quote), le pricing automatique de produit sur mesure, le design-to-cost qui associe géométrie 2D/3D et costing, mais je suis curieux et ouvert à tous les projets à valeur ajouté.
  • French

    Native or bilingual

  • English

    Fluent

  • Spanish

    Basic

Can work on-site
La Rochelle (up to 50km)

Experience

  • Expert Solutions / Clariprint®
    Product Owner/Lead Developper : Module Design-to-cost/E-boutique Packaging
    SOFTWARE PUBLISHING
    August 2022 - November 2022 (3 months)
    La Rochelle, France
    Afin d'étendre le marcher cible de la solution Clariprint au métier du Packaging et plus particulièrement de permettre aux clients web-to-print de proposer dans leur e-boutique une offre de Packaging personnalisée à partir de templates paramétriques de "boite".

    L'objectif était de pouvoir aisément paramétrer des modèles de packaging, de pouvoir personnaliser les dimensions, support, impression, de visualiser le pliage en 3D, de calculer le prix en temps réel et de fournir un gabarit SVG au client final pour qu'il puisse l'éditer sur Indesign.

    J'ai mené le projet seul et en autonomie. J'ai créé le product backlog. J'ai créé un projet de recherche élligible CIR pour la modélisation paramétrique d'une boite réalisée par pliage et la visualisation du pliage en 3D. J'ai réalisé l'opération de recherche dans un environnement technique javascript, webGL, Claire Language. Enfin, j'ai réalisé les développements fonctionnels et l'intégration à la solution. 
    JSON JavaScript SVG HTML WebGL Animation 3D API REST
  • Expert Solutions / Clariprint®
    ProductOwner/LeadDevelopper : Fonctionnalité de Recherche Opérationnelle
    SOFTWARE PUBLISHING
    March 2022 - July 2022 (4 months)
    La Rochelle, France
    Cette étude et réalisation permet de traiter efficacement le cas le plus général de l'amalgame de forme à imprimer sur une feuille d'impression, c'est à dire un ensemble de X formes multi-modèles de tirage différent en Offset feuille ou bobine sortie à plat :
    Une forme Fx à plat est définie par une hauteur hx et une largeur lx.
    A chaque forme Fx correspond un ensemble kx de modèles M de Q(M) produits.
    {F1[M1-1/Q1-1 .. M1-k/Q1-k1] , F2[M2-1/Q2-1 .. M2-k2/Q2-k2] .. Fx[Mx-1/Qx-1 .. Mx-kx/Qx-kx]}

    Le problème consiste à déterminer l'ensemble de feuilles d'impression minimisant le coût total de fabrication dans un référentiel de supports (papier, bobine, stock imprimeur, stock distributeur, fabrication) et un référentiel de poste de fabrication (presse offset feuille, rotative ...).
    {PF1(X1F1 .. X1Fx) .. PFz(XzF1 .. XzFx)}
    Chaque feuille d'impression PF propose un vecteur de nombre de pose par forme.
    Vf[X1F1 .. XxFx] puis par spécialisation de l'arrangement, un vecteur de nombre de pose par modèle Vm[X1M1 .. XxMw]. Avec comme ensemble de contraintes à satisfaire :
    - Chaque modèle M apparaît sur une et une seule feuille PF.
    - Pour chaque feuille d'impression PF, pour chaque modèle M, le nombre de bonnes feuille Qpf >= Qm / Xm ou Qm est la quantité objectif de modèle M et Xm le nombre de poses affectées au modèle M.

    D'un point de vue technologique comment cela fonctionne ?
    Clariprint fait appel à plusieurs algorithmes d'optimisation, à travers les étapes suivantes :
    A/ recherche de solutions de discrétisations du problème en classes de produit en explorant plusieurs quantités de classes (1 classe correspondant à 1 feuille d'impression au final). Clariprint utilise la méthode de discrétisation statistique de minimisation de l'inertie intra-classe. Le calcul de l'inertie utilise d'une part la surface des formes des produits, d'autre part les quantités objectifs pour chaque modèle de produit.
    Clariprint utilise le solver de contrainte Choco pour minimiser la somme des inertie intra-classe avec un maximum pour la surface totale d'une classe.

    B/ Pour chaque solution de discrétisation trouvée, pour chaque classe, génération de feuilles d'impression.
    Clariprint fait appel à un problème Choco avec en entrée :
    - liste des formes à imposer ;
    - liste des quantités objectifs ;
    - format maxi ;

    Clariprint utilise 2 logiques de composition de feuilles d'impression différentes :
    1/ N colonnes de forme unique + jusqu'à 2 colonnes de forme partagées (4 en bascule In8)
    2/ N lignes de forme unique

    Chaque logique est déclinée en 3 sous-logiques :
    - côté-côté (pas de symétrie),
    - In8 (symétrie d'axe parallèle à la hauteur),
    - In12 (symétrie d'axe parallèle à la largeur)

    Pour rappel les feuilles symétriques permettent de disposer sur un même côté de la feuille d'impression à la fois le Recto des produits et le Verso des produits, ainsi par basculement de la feuille avant un repassage, on peut imprimer à la fois le Recto et le Verso avec les mêmes plaques réduisant de moitié les coûts fixes d'impression par rapport à la méthode côté-côté.

    C/ Les feuilles d'impression trouvées sont regroupées en vecteur de forme (nombre de pose pour chaque forme F1 .. Fx). Pour chaque discrétisation, pour chaque classe, Clariprint recherche le meilleur vecteur de forme (celui qui donne le tirage le plus faible). Clariprint utilise ici encore le solver de contraintes Choco.

    D/ Enfin, pour déterminer la meilleure solution de fabrication, un algorithme de type Branch and bound explore les propositions de discrétisation dans les référentiels de ressources (papier, presse offset feuille, presse rotative ...).
    Recherche Opérationnelle Programmation par contrainte Génération de colonne Relaxation Claire Language Choco Branch and bound
  • Expert Solutions / Clariprint®
    ProductOwner/LeadDevelopper : Visualisateur d'arbre de résolution de problème de Recherche Opérationnelle
    SOFTWARE PUBLISHING
    November 2021 - March 2022 (3 months)
    La Rochelle, France
    Depuis la création de Clariprint, à l’issu d’un calcul, l’utilisateur voit, soit un résultat exploitable, soit la mention « impossible à calculer ». Il en ressort que l’utilisateur n’est pas capable de comprendre directement pourquoi un calcul est « impossible », donc incapable d’agir avec certitude sur :
    • les caractéristiques du produit dont il souhaite le chiffrage (en phase d’exploitation)
    • les données machines ou papier qu’il doit modifier pour calculer le produit (en phase de
    paramétrage des données)

    Il est donc obligé de procéder à taton, par exemple en modifiant les spécifications du produit jusqu’à ce qu’il obtienne un calcul valide.
    D’autre part, quand un calcul abouti, certains utilisateurs experts souhaitent vérifier la logique de l’optimisation afin de s’assurer que le calculateur n’est pas passé à côté d’une meilleure solution, ou afin de comprendre ce qui a entravé le cheminement vers une solution pressentie comme bonne.
    Enfin, bien qu’il existe des traces écrites dans un fichier log, elles sont activables uniquement dans le paramétrage du serveur de calcul, nécessite le redémarrage de celui-ci, de se connecter en ssh au serveur pour visionner les logs à la console. Cette procédure, très chronophage, nécessite les compétences d’un développeur, or l’analyse du cheminement et de la pile d’appel est souvent indispensable à la rédaction d’un rapport de bogue ou simplement à la détermination des paramètres manquants ou bloquants dans le paramétrage technique des machines ou des supports.

    Donc les objectifs de cette opération sont de résoudre ces problèmes, plus précisément :
    1/ être capable en moins de 100 caractères d’exprimer de manière intelligible pour un utilisateur de profil deviseur ou fabricant en imprimerie, une raison à l’impossibilité de calcul (il ne s’agit pas d’être exhaustif mais concis et précis)
    2/ produire un log simplifié du cheminement du calculateur :
    a/ à l’attention des utilisateurs de profil deviseur ou fabricant en imprimerie,
    b/ qui soit accessible directement depuis l’interface graphique,
    c/ qui soit hiérarchisé (sous la forme d’un arbre dépliable)
    d/ qui met en évidence les points de blocage
    3/ de produire un log étendu du cheminement du calculateur :
    a/ à l’attention des utilisateurs avancés (gestionnaire d’exploitation chez le client, support Clariprint,
    développeurs Clariprint)
    b/ qui reprend l’arborescence du log simplifié en la complétant avec les appels fonctionnels jugés
    pertinents, les itérations jugées pertinentes (boucle de contrôle « For ») et les interceptions
    d’exceptions jugées pertinentes (bloc de traitement encadré par « try » ... « catch »)

    Les verrous technologiques et incertitudes
    Comment instrumenter le code du calculateur sans l’alourdir ?
    Comment déterminer à priori le domaine d’utilisation d’une machine au regard du support
    choisi afin de pré-filtrer les impossibilités métiers en amont de la recherche de solution ?
    Comment gérer les impossibilités métiers dans un arbre de recherche alternant les branches
    complémentaires et les branches concurrentes afin de remonter à l’utilisateur une erreur pertinente
    et intelligible ?
    Comment minimiser le volume des données du log ?
    Quel est l’impact sur le temps de calcul si on systématise la génération du log ?

    Le plan de l’opération est le suivant :
    1/ customisation du langage Claire et de son compilateur pour créer des « call-back » pour les nouvelles instructions « tfor », « ttry »

    2/ création d’un module contrôleur des « front logs » exploitant des « call-back » pour générer des lignes de traces pour les instructions « tfor », « ttry » et « tcall »

    3/ création d’apis pour hiérarchiser le log par chapitre et ajouter des commentaires

    4/ étape 1 de l’instrumentation du code du calculateur pour tests de génération de logs

    5/ création du visualiseur de log : code qui interprète le log et génère dynamiquement une page html

    6/ création d’une procédure de pré-contrôle de l’adéquation des données d’un environnement de calcul (parc-machine, papier etc ...) aux spécifications de la demande

    7/ Instrumentation du code du calculateur pour détecter les points de blocage, les signaler par des erreurs dans le log, interrompre le calcul ou pas suivant l’apparition du blocage dans un groupe de branche concurrente ou complémentaire.

    8/ afficher l’erreur la plus pertinente si le calcul n’a pas abouti

    Conclusion :
    Même si les résultats gagnent encore à être plus lisible pour les utilisateurs finaux, cette opération est un succès au-delà de toute espérance. Dans le cadre de cette étude nous nous sommes rapidement heurté à l’inadéquation initiale de la conception du calculateur
    de Clariprint avec les objectifs visés. Ceci nous a conduit a repensé certaines parties qui au final ont profité à la robustesse de la solution et même à réduire le temps moyen de réponse grâce à des pré-contrôles systématiques.
    product owner Lead Developer C++ Compilateur Claire Language CSV HTML CSS Boite grise

Recommendations

Be the first to recommend Laurent

Help this freelancer shine by sharing your experience working together.

These freelancer profiles also match your criteria

AgathaA

Agatha Frydrych

Backend Java Software Engineer

4.7

(3)

2

BaptisteB

Baptiste Duhen

Fullstack developer

4.6

(4)

5

AmedA

Amed Hamou

Senior Lead Developer

4

(2)

7

AudreyA

Audrey Champion

Web developer

4.3

(3)

4

Education

  • Ingénieur
    ENSAM
    1999
    Ingénieur généraliste, mécanique, électrotechnique, productique, gestion de production, méthode, CAO. Projet de fin d'étude : écriture d'un recueil de règles métiers régissant la fonction intellectuelle d'implantation de composants électrotechniques dans une armoire électrique et spécification fonctionnelle d'une bibliothèque de calcul d'automatisation de cette fonction.
  • DUT
    IUT Génie Mécanique de Talence
    1996
    Formation en Génie Mécanique et productique, de la conception à la gestion de production en passant par la résistance de matériaux, l'automatique, les méthodes etc ...

Skill set

Categories