Senior Frontend Engineer (Vue.js 3 / Nuxt / Typescript)
TotalEnergies
août 2023 - août 2025
Contexte : Équipe projet agile de 2 développeurs + 1 PO
Projet : Créer une plateforme de modélisation visuelle des flux industriels (ex. procédés pétrochimiques), pour comparer, en temps réel, la performance économique et l’impact environnemental (CO₂, consommation du, occupation des sols, etc.) des différents flux.
Ma mission :
- Co-conception & développement à partir de zéro de l𠆚pplication : définition de l𠆚rchitecture front-end, choix technologiques, implémentation.
- Implémenter une interface 𠇍rag-and-drop” pour non-spécialistes basée sur Vue Flow : l’utilisateur glisse-dépose des blocs industriels et les relie par des flèches succès et adoption rapide par les équipes métier.
- Créer les formulaires qui permettent de créer des « blocs industriels » et renseigner leurs paramètres (utilisant la librairie citée ci-dessous).
- Design d’interaction soigné : éléments SVG dynamiques, transitions fluides, feedbacks visuels précis assurant une prise en main intuitive pour des non-spécialistes.
Environnement Technique : Vue 3 / Nuxt / Typescript, Vue Flow, TailwindCSS, Vitest, Testing Library, Yup / Zod, Vee Validate, VueUse, PrimeVue
Mission transverse : Créer une librairie front-end mutualisée entre 4 équipes (≈ 8 devs) + 3 PO
Projet : Au sein du pôle R&D, il y a le besoin de pouvoir créer et valider des formulaires dynamiques, conditionnels et complexes, pilotés par le back. Ma mission était de créer une librairie générique de zéro pour générer et valider tout type de formulaires complexes.
Ma mission :
- Créer une librairie riche en fonctionnalités qui permet de générer et valider des formulaires, soit sur la base d'un schéma envoyé par le back, soit à partir du code écrit sur le front.
- Concevoir un schéma JSON qui permet de piloter de A à Z les formulaires depuis le back
- Concevoir également une API de développement pour piloter les formulaires depuis le front, avec un langage déclaratif basé sur le chaînage de méthodes inspiré par Zod
- Concevoir une architecture pilotée au maximum par la configuration qui s'adapte facilement pour supporter tout type de champs (ex. string, number...) et toutes leurs propriétés (ex. label, min / max ...). Ainsi, l'utilisateur de la librairie peut configurer de nouveaux types de champs et modifier les existants. Le schéma JSON ainsi que l'API déclarative côté front sont générés dynamiquement par cette configuration.
- Gérer lichage et la validation de formulaires très complexes, riches en fonctionnalités :
> Formulaires à plusieurs pages (ex. wizards / steps)
> Découpage du formulaire en sections, sous-sections etc. sans limitation de profondeur
> Sous-formulaires en forme de liste qui doivent être remplis n fois
> Gérer un nombre arbitraire de champs (ex. centaines de champs), de tout type
> Évaluer dynamiquement les paramètres conditionnels (ex. visibilité, label) selon les valeurs du formulaire. Permettre que tous les paramètres puissent être conditionnels.
> Valider le formulaire selon les paramètres de chaque field (ex. min/max, mandatory)
- Concevoir un moteur d’évaluation de conditions multiformat (fonctions JS, template literals, expressions JS, JSON Logic) avec contexte réactif Vue, tolérant aux erreurs
- Permettre la configuration fine de l’interface de chaque field selon son type
- Utiliser pleinement des techniques avancées en javascript et en Vue comme la métaprogrammation (génération dynamique du code et des types), provide / inject, composables imbriqués, JSON logic, Proxies, structures de données complexes (ex. arbres)
- Usage avancé de TypeScript: dynamic/mapped/conditional types, infer, remapping de clés, unions discriminées et types récursifs.
- Documenter et créer une interface Playground pour permettre de tester la création des formulaires, soit par schéma, soit par code déclaratif.
Environnement Technique : Vue 3 / Typescript, TailwindCSS, Vitest, Testing Library, Vue Test Tools, Yup / Zod, Vee Validate, VueUse, PrimeVue, JSON Logic
Mission transverse : Participer à la création d’un design système
Projet : Design système
- Participer au développement à partir de zéro d’une nouvelle librairie de composants et accompagner les équipes dans son intégration aux différentes applications du pôle R&D
- Développer un site de documentation du design system inspiré par le site de documentation de Nuxt UI, avec fonctionnalités similaires
Environnement Technique : Vue 3 / Nuxt / Typescript, Reka UI, TailwindCSS, Vitest, Testing Library, Vue Test Tools, VueUse, Tanstack Table, Codemirror, Vue Docgen API
Mission transverse : Contribuer activement à la dynamique de l'équipe front
- Qualité & tests : introduction systématique de tests unitaires, d’intégration et end-to-end avec Testing Library forte hausse de la couverture et réduction des régressions.
- Collaboration et méthodologie : participation active aux rituels Scrum, refinements et revues de code adoption de bonnes pratiques et de clean architecture.
- Support & transfert de compétences : accompagnement des équipes dans l’utilisation des librairies, rédaction de guides techniques et animation de workshops internes.
- Co-conduire les interviews des nouveaux candidats frontend
Vue 3 / Nuxt / Typescript, Vue Flow, TailwindCSS, Vitest, Testing Library, Yup / Zod, Vee Validate, VueUse, PrimeVue
Senior Frontend Engineer (Vue.js 3 / Nuxt / Typescript)
Neoxam
juin 2021 - août 2023
Contexte : Agile SCRUM, dans une équipe de 9 développeurs, 2 PO et 1 Scrum Master
Projet : Une application de data management qui permet de gérer des flux des données financières (import, export, transformation, visualisation, création des dashboards ...)
Ma mission :
- Développer from scratch une nouvelle librairie de composantes et accompagner les équipes dans son intégration aux différentes applications du groupe
- Décomposer les écrans Figma créés par un designer en composants génériques et réutilisables (ex. table, tree, tabs, button, dropdown, list ...)
- Rendre les composants responsifs, finaliser les détails d'implémentation non prévus dans le design, et porter une attention particulière à chaque détail visuel du produit final
- Faire face à une forte volumétrie des données et un besoin accru de performance, optimiser le chargement et l'exécution des composantes (ex. implémenter virtual scrolling, créer de structures des données appropriés, ...)
- Implémenter des fonctionnalités avancés adressées à un public professionnel (ex. tableur visuellement et fonctionnellement équivalent à Excel/Airtable avec des fonctionnalités en plus)
- Concevoir et implémenter un moteur de thèmes basé sur TailwindCSS / Typescript qui permet de personnaliser en détail la mise en forme des composants, y compris l'ajout de styles dynamiques en fonction des paramètres et de l'état du composant
- Créer de zéro un moteur de documentation des composantes basé sur l'API de Vue Styleguidist, afin de répondre aux besoins de démo commerciales (vitrine de la librairie des composantes) ainsi qu'aux besoins de documentation interne
- Créer des POC pour de démos commerciales et de custom fit adressés à des grandes fortunes financières et à de grands comptes
- Accompagner l'équipe dans la migration de Vue.js 2 vers Vue 3 / Typescript (puis Nuxt 3) et aider l'équipe à monter en compétence
- Accompagner et suivre une équipe de 6 développeurs frontend en étroite collaboration avec le lead-dev intra-applicatif
- Établir des bonnes pratiques du code : Rédiger du code clair, segmenté en parties réutilisables, documenté avec JSDoc et entièrement en Typescript.
- Introduire l'équipe à Vue 3 et à Composition API et assister dans la migration du code
- Introduire l'équipe à Typescript et l'aider à l'intégrer dans le projet.
- Introduire l'équipe à la rédaction de documentation technique via JSDoc
- Introduire l'équipe à la gestion d'états via Reactive et Pinia
- Être une source de propositions et d'initiative
- Effectuer la revue du code frontend
- Rédiger des test unitaires avec Vitest
Environnement Technique : Vue 3 / Nuxt 3, Typescript, TailwindCSS, Vitest, Pinia, Vue Styleguidist / Docgen API, Docker, JIRA, Confluence, Git, Figma
Vue 3 / Nuxt 3, Typescript, TailwindCSS, Vitest, Pinia, Vue Styleguidist / Docgen API, Docker, JIRA, Confluence, Git, Figma
Senior Frontend Engineer (Svelte / Typescript)
Secteur Media
mars 2020 - février 2021
Contexte : Agile SCRUM, dans une équipe de 3 développeurs et 1 PO, contexte start-up
Projet : Un moteur de recherche des vidéos qui permet de visualiser les vidéos
Ma mission :
- Développer from scratch un moteur de recherche pour vidéos
- Choisir une stack technique qui correspond aux contraintes techniques et fonctionnelles
- Concevoir et implémenter l'interface UI
- Développer et déployer des API en pure JS/TS dans le Edge Cloud
- Créer de pipeline CI pour la mise en production
- Rédiger la documentation technique
- Rédiger des test unitaires avec Jest
Senior Frontend Engineer
Cour des Comptes
janvier 2019 - février 2020
Contexte : Agile SCRUM, dans une équipe de 5 développeurs, 1 PO et 1 Scrum Master
Projet : Éditeur des texte collaboratif pour la rédaction des rapports juridiques et moteur de recherche pour la recherche des rapports
Ma mission :
- Rattaché directement au Vice Président
- Gérer le développement frontend en étroite collaboration avec les équipes métiers
- Organiser des ateliers avec les équipes métier pour identifier et analyser les besoins
- Mettre en place une solution technique en respectant les contraintes techniques et fonctionnelles
- Concevoir et implémenter l'interface UI
- Développer de composantes génériques
- Faire la revue de code
- Rédiger la documenta...