Aller au contenu
Paul Bodin
Photo de Paul Bodin

Paul Bodin

Nantes, Pays de la Loire

Développeur Backend Java

Je conçois des API, des flux et des batchs fiables sur le cloud, pensés pour être utiles et durables.

Expérience

  1. février 2024 – aujourd'hui

    Développeur Backend Java

    Maisons du Monde — Supply · Aubay · Nantes

    Intégration de l'OMS OneStock et refonte complète des flux supply chain sur Google Cloud Platform.

    • Cadrage technique de l'intégration de l'OMS OneStock
    • Refonte des flux internes autour d'une architecture événementielle (Pub/Sub)
    • Intégration avec OneStock via API REST et webhooks
    • Développement d'API REST, de flux et de batchs
    • Conception de modèles de données
    • Pair programming, revues techniques et gestion du RUN
    • Java
    • Spring Boot
    • GCP
    • Pub/Sub
    • Gemini Code Assist
    Lire l'étude de cas

    février 2024 – aujourd'hui · Nantes

    Maisons du Monde — Supply

    Développeur Backend Java · Aubay

    Intégration de l'OMS OneStock et refonte complète des flux supply chain sur Google Cloud Platform.

    En bref

    Méthode
    Agile Scrum
    Environnement
    • Java
    • Spring Boot
    • Google Cloud Platform
    • Pub/Sub
    • API REST
    • Webhooks
    • Gemini Code Assist

    Contexte et enjeux

    Maisons du Monde a choisi d’intégrer OneStock, un OMS (Order Management System), pour orchestrer ses commandes entre ses différents canaux de vente et ses sources de stock. J’interviens au sein du pôle Supply, en charge des applications liées au transport et au stock.

    L’arrivée d’un OMS change la circulation de l’information : les flux existants entre les systèmes devaient être repensés de bout en bout. Avec trois exigences :

    • Refondre tous les flux concernés sans interrompre l’activité existante.
    • Fiabiliser les échanges entre des systèmes hétérogènes : aucun message perdu, des reprises possibles en cas d’erreur.
    • Découpler les applications pour pouvoir faire évoluer chaque système indépendamment.

    Architecture

    Les échanges reposent sur une architecture événementielle sur Google Cloud Platform. En interne, les systèmes de Maisons du Monde publient leurs événements dans des topics Pub/Sub, consommés par des services Java / Spring Boot.

    Ces services font le lien avec OneStock : ils transmettent les données à l’OMS en appelant ses API REST, et reçoivent ses notifications via des webhooks, qu’ils republient ensuite dans les topics internes.

    1. Systèmes Maisons du Monde

      Canaux de vente, stocks, transport

    2. Pub/Sub

      Topics internes

    3. Services de flux

      Java / Spring Boot sur GCP

    4. API REST

      Webhooks

    5. OMS OneStock

      Orchestration des commandes

    Vue simplifiée des échanges : événements Pub/Sub en interne, API REST et webhooks avec OneStock.

    En interne, ce découplage par messages permet de rejouer un flux en cas d’incident, d’absorber les pics de charge et d’ajouter un nouveau consommateur sans modifier les producteurs.

    Ce que j’ai fait

    • Cadrage technique : participation à la conception des flux et des modèles de données.
    • Développement des services de flux, des API REST et des batchs en Java / Spring Boot.
    • Qualité : pair programming et revues techniques au sein de l’équipe.
    • RUN : suivi de la production et traitement des incidents.
    • IA dans le développement : utilisation de Gemini Code Assist au quotidien.
  2. septembre 2023 – février 2024

    Développeur Full Stack Java/Angular

    Code Factory · Aubay · Nantes

    Deux applications internes, un outil d'audit de numérique responsable puis un site vitrine des projets, conforme au RGAA.

    • Green Code Pattern, outil d'audit des projets sur le numérique responsable
    • SVS, site vitrine des projets internes, accessible (RGAA) et internationalisé
    • Backend Java Spring Boot exposant des API RESTful sur AWS, testé avec JUnit et Mockito
    • Application Angular testée avec Jasmine et Karma
    • Intégration continue avec Jenkins et SonarQube
    • Java
    • Spring Boot
    • Angular
    • PostgreSQL
    • Jenkins
    • AWS
    Lire l'étude de cas

    septembre 2023 – février 2024 · Nantes

    Code Factory

    Développeur Full Stack Java/Angular · Aubay

    Deux applications internes, un outil d'audit de numérique responsable puis un site vitrine des projets, conforme au RGAA.

    En bref

    Équipe
    2 à 3 développeurs, un Product Owner, un Tech Lead et un responsable projet
    Méthode
    Agile Scrum
    Environnement
    • Java 17
    • Spring Boot
    • Hibernate
    • Maven
    • Swagger
    • JUnit
    • Mockito
    • Angular
    • Jasmine
    • Karma
    • PostgreSQL
    • Docker
    • Jenkins
    • SonarQube
    • AWS
    • Jira

    Contexte et enjeux

    La Code Factory d’Aubay développe des applications internes, avec une organisation de projet complète : un Product Owner, un Tech Lead, un responsable projet et une équipe de développeurs. J’ai travaillé sur deux projets successifs :

    • Green Code Pattern, une application d’audit des projets sur le plan du numérique responsable. Elle évalue un projet sur deux axes, l’inclusion et l’accessibilité d’une part, la réduction de l’empreinte écologique d’autre part.
    • SVS, une application qui présente les projets de l’Innov et de la Code Factory, avec un accent sur l’accessibilité et l’internationalisation.

    Ce que j’ai fait

    Green Code Pattern

    • Backend Java Spring Boot exposant des API RESTful, couvert par des tests unitaires JUnit et Mockito.
    • Front Angular : questionnaires et tableaux de synthèse, testés avec Jasmine et Karma.
    • Données dans PostgreSQL.

    SVS

    • Accessibilité conforme au RGAA (Référentiel général d’amélioration de l’accessibilité).
    • Internationalisation de l’application.
    • Backend Java Spring Boot (API RESTful) et front Angular avec formulaires, sur la même base technique que Green Code Pattern.

    Sur les deux projets

    • Tests unitaires côté back (JUnit, Mockito) et côté front (Jasmine, Karma).
    • Intégration continue avec Jenkins et analyse de code avec SonarQube.
    • Rituels Scrum : sprint planning, daily, sprint review, planning poker et affinage du backlog.
  3. avril 2023 – septembre 2023

    Développeur Full Stack Java/Angular

    Advanced Customer Data Platform (Aubay Innov) · Aubay · Nantes

    Plateforme de données clients qui segmente la clientèle d'une marque pour cibler ses campagnes marketing.

    • Backend Java Spring Boot exposant des API RESTful sur AWS, testé avec JUnit et Mockito
    • Application Angular de visualisation des données clients (tableaux, graphiques)
    • Deux bases de données, MongoDB pour les ventes et PostgreSQL pour l'authentification
    • POC de segmentation client (géographique, comportementale, technologique)
    • Présentation du projet à Paris devant la direction
    • Java
    • Spring Boot
    • Angular
    • MongoDB
    • PostgreSQL
    • AWS
    Lire l'étude de cas

    avril 2023 – septembre 2023 · Nantes

    Advanced Customer Data Platform (Aubay Innov)

    Développeur Full Stack Java/Angular · Aubay

    Plateforme de données clients qui segmente la clientèle d'une marque pour cibler ses campagnes marketing.

    En bref

    Équipe
    2 développeurs, 4 data analysts, un Product Owner et un responsable
    Méthode
    Agile Scrum
    Environnement
    • Java 17
    • Spring Boot
    • Maven
    • Swagger
    • JUnit
    • Mockito
    • Angular
    • ng2-charts
    • MongoDB
    • PostgreSQL
    • Docker
    • Docker Compose
    • AWS
    • Jira

    Contexte et enjeux

    L’Advanced Customer Data Platform est un projet de l’Innov d’Aubay. L’objectif : aider une marque à mieux connaître sa clientèle, en segmentant ses clients selon la valeur qu’ils lui apportent, pour ensuite les récompenser et mener des campagnes marketing ciblées.

    • Rendre les données lisibles pour des équipes marketing : des tableaux et des graphiques plutôt que des données brutes.
    • Collaborer avec les data analysts de l’équipe, en charge de l’analyse des données clients.
    • Explorer plusieurs approches de segmentation au travers de POC.

    Ce que j’ai fait

    • Backend Java Spring Boot exposant des API RESTful, couvert par des tests unitaires JUnit et Mockito.
    • Front Angular affichant les informations clients sous forme de tableaux et de graphiques (ng2-charts).
    • Deux bases de données : MongoDB pour les données de ventes et PostgreSQL pour l’authentification.
    • POC de segmentation client : géographique, comportementale et technologique.
    • Présentation du projet à Paris, devant la direction et une centaine de personnes.
    • Rituels Scrum : sprint planning, daily, sprint review et affinage du backlog.
  4. mai 2022 – septembre 2022

    Développeur Full Stack Node/React

    Clear Channel France · Paris

    Prototype d'un outil d'analyse de données publiques externes, au service de l'affichage publicitaire.

    • API Node.js alimentant une application React
    • Carte interactive Leaflet et tableaux de données
    • Collecte automatisée des données de trafic en temps réel, via une tâche planifiée sur AWS
    • Modèles de données NoSQL sur MongoDB Atlas
    • React
    • Node.js
    • Leaflet
    • TomTom API
    • MongoDB
    • AWS
    Lire l'étude de cas

    mai 2022 – septembre 2022 · Paris

    Clear Channel France

    Développeur Full Stack Node/React · Clear Channel France

    Prototype d'un outil d'analyse de données publiques externes, au service de l'affichage publicitaire.

    En bref

    Équipe
    Seul développeur, avec un Product Owner et un architecte logiciel
    Méthode
    Agile Kanban, revues de code
    Environnement
    • React
    • Node.js
    • Leaflet
    • API TomTom
    • MongoDB Atlas
    • AWS
    • Docker
    • Jira
    • Confluence

    Contexte et enjeux

    Clear Channel France est un acteur de l’affichage publicitaire. Le projet consistait à prototyper un outil d’analyse de données publiques externes, accessibles au travers d’API, en complément des données internes.

    • Collecter en continu des données externes, comme le trafic en temps réel, sans intervention manuelle.
    • Réunir ces données et les données internes dans une même base.
    • Les rendre exploitables : une carte et des tableaux plutôt que des données brutes.

    Architecture

    Une tâche planifiée hébergée sur AWS interroge régulièrement les API externes, dont l’API TomTom pour le trafic, et stocke les données dans MongoDB Atlas avec les données internes. Une API Node.js les expose ensuite à l’application React.

    1. API externes

      Trafic temps réel (TomTom)

    2. Tâche planifiée

      Script JavaScript sur AWS

    3. MongoDB Atlas

      Données externes et internes

    4. API Node.js

      Données pour le front

    5. Application React

      Carte Leaflet et tableaux

    Vue simplifiée du flux de données, de la collecte à l'affichage.

    Ce que j’ai fait

    • Backend Node.js : API répondant aux besoins des fonctionnalités du front.
    • Front React : affichage des données sur une carte interactive Leaflet et dans des tableaux.
    • Collecte automatisée : script JavaScript hébergé sur AWS et exécuté par une tâche planifiée (cron), qui récupère les données de trafic en temps réel.
    • Modélisation des données NoSQL dans MongoDB Atlas.

Compétences

Langages
  • Java
  • SQL
  • TypeScript
  • JavaScript
  • Python
  • Bash
Backend
  • Spring Boot
  • Spring Data JPA
  • Hibernate
  • API REST
  • OpenAPI
  • JUnit
  • Mockito
Cloud
  • Google Cloud Platform
  • Pub/Sub
  • AWS
  • Rancher
Données
  • PostgreSQL
  • Oracle
  • MariaDB
  • MongoDB
  • Redis
DevOps
  • Docker
  • Kubernetes
  • GitLab CI
  • Jenkins
  • SonarQube
  • Maven
  • Rundeck
Front
  • Angular
  • React
  • Node.js
Méthodes
  • Agile Scrum
  • Kanban
  • Pair programming
  • Revue de code
  • Jira
Fonctionnel
Transport · Stock · Publicité · Marketing · Accessibilité · Numérique responsable

Projets personnels

  • CraskyApi

    API REST de gestion d'inventaire Counter-Strike 2, conçue en approche contract-first : le contrat OpenAPI génère les interfaces des contrôleurs.

    • Java 24
    • Spring Boot 3
    • OpenAPI
    • PostgreSQL
    • Docker
  • CraskyUI

    Interface web de CraskyApi, en composants standalone et signals.

    • Angular 20
    • TypeScript
  • Template Spring Boot

    Socle de projet réutilisable qui fixe mes conventions : architecture en couches, contrat OpenAPI, base PostgreSQL conteneurisée.

    • Java
    • Spring Boot 3
    • OpenAPI
    • Docker

À propos

Ingénieur diplômé de l'ESIEA, je me suis spécialisé dans le développement backend Java. Depuis 2024, je travaille sur la supply chain de Maisons du Monde, où j'ai participé au cadrage et au développement de l'intégration d'un nouvel OMS, avec la refonte de l'ensemble des flux autour d'une architecture événementielle sur Google Cloud.

J'aime concevoir des systèmes lisibles et robustes : des API bien contractualisées, des flux qui résistent aux pannes et un code que l'équipe a plaisir à reprendre. Le pair programming, les revues de code et la qualité du RUN font partie de ma façon de travailler.

J'ai aussi une expérience full stack (Angular, React) et une sensibilité à l'accessibilité (RGAA) et au numérique responsable.

Formation

ESIEA, école d'ingénieurs du numérique

Diplôme d'ingénieur, majeure Software Engineering

2018 – 2023

Langues
  • Anglais · Avancé (TOEIC 850)
  • Espagnol · Intermédiaire
En dehors du code
  • Course à pied et tennis
  • Échecs et lecture

Contact

Une question, un échange autour d'un projet ? Écrivez-moi, je réponds rapidement.

paul.bodin@hotmail.com