Disponible — freelance ou CDI · Le Mans - Laval — remote ou sur site

FabienTilly

Je crée des applications web sur mesure : outils internes, portails clients, SaaS.

Je m'occupe de tout, du besoin à la mise en ligne : conception, développement, hébergement et suivi. Vous avez un seul interlocuteur, et une application qui fonctionne.

FT

Fabien Tilly

Fullstack TypeScript

● Dispo
  • Front-endVue 3TypeScriptHTML / CSSViteThree.js / WebGL
  • Back-endNestJSNode.jsAPI RESTPostgreSQL / SQLAutomatisation
  • Infra & outillageDockerNginxGit
GET /api/cv… · … ms · —
Profil

Du schéma de données à la mise en prod.

Mes projets couvrent aussi bien des produits publics (plateforme de pronostics, e-commerce avec rendu WebGL) que des applications métier internes : workflow de création de projets, automatisation logistique, gestion d'exploitations minières, …

Ma façon de travailler : spécifier précisément, typer strictement, tester, relire, et livrer quelque chose de terminé.

  • 01Front-end Vue 3 (Composition API, <script setup>), Vite, Pinia, Vue Router
  • 02Back-end NestJS : modules, DI, DTO + class-validator, guards, interceptors
  • 03TypeScript strict de bout en bout, contrats d’API typés
  • 04PostgreSQL, modélisation relationnelle, migrations
  • 05Docker multi-stage, Docker Compose, reverse proxy Nginx
  • 06Rendu 3D temps réel dans le navigateur (Three.js / WebGL)
  • 07Automatisation de processus métier, jobs planifiés
  • 08Autonome sur un projet complet ou intégré à une équipe (PR, code review)
Projets

Ce que j’ai conçu et livré.

Deux sites publics, consultables directement ci-dessous, et trois applications métier internes.

01En lignearena-predict.fr

Arena Predict

Conception et développement de A à Z

Plateforme de pronostics esport gratuite, avec ligues privées et classements.

Problème
Proposer aux fans d'esport un jeu de pronostics gratuit, à jouer entre amis, avec des classements justes et à jour sans aucune intervention manuelle.
Solution
Une plateforme web complète : comptes, ligues privées, pronostics verrouillés au début de chaque match, calcul automatique des points et des classements, et un bot Discord.
Résultat
Plateforme en ligne et utilisée sur arena-predict.fr. Je l'ai conçue, développée et je l'exploite en production.
Vue 3NestJSTypeScriptPostgreSQLDocker
Ouvrir arena-predict.fr ↗
arena-predict.fr
Capture d'écran de Arena Predict
02En ligneshop.pahapa.fr

Pahapa — configurateur de trophées 3D

Développement du module de trophées 3D

Boutique en ligne où le client personnalise son trophée et le voit en 3D avant de commander.

Problème
Un produit personnalisé se vend mal sur photo : le client doit voir exactement ce qu'il va recevoir avant de passer commande.
Solution
Un configurateur 3D directement dans le navigateur : le client compose son produit et le fait tourner sous tous les angles, en temps réel, y compris sur téléphone.
Résultat
Le configurateur est intégré à la boutique shop.pahapa.fr, de la personnalisation jusqu'au panier.
Three.jsWebGLJavaScriptE-commerce
Ouvrir shop.pahapa.fr ↗
shop.pahapa.fr
Capture d'écran de Pahapa — configurateur de trophées 3D
03InterneIFPEN

Plateforme de création et de déploiement de projets

Développement fullstack

Plateforme interne d'IFP Énergies nouvelles pour lancer et mettre en ligne des applications.

Problème
Chaque nouvelle application interne demandait de préparer à la main son infrastructure et sa mise en ligne, sur les serveurs de l'IFPEN comme sur le cloud.
Solution
Une plateforme où les équipes créent leur projet à partir de modèles prêts à l'emploi : elles récupèrent le projet, codent, envoient leurs changements — le reste est automatique.
Résultat
Chaque modification est mise en ligne automatiquement, sur le serveur interne de l'IFPEN et sur le cloud. Les équipes se concentrent sur leur métier, pas sur l'infrastructure.
Vue 3NestJSTypeScriptCI/CDREST
04InterneTransport85

Automatisation des ordres de transport

Conception et développement

Outil interne qui transforme les commandes en ordres de transport, sans ressaisie.

Problème
Les ordres de transport étaient ressaisis à la main à partir des commandes : du temps perdu chaque jour et un risque d'erreur à chaque saisie.
Solution
Un traitement automatique qui récupère les commandes, les contrôle et génère des ordres de transport prêts à être exécutés, avec gestion des cas en erreur.
Résultat
Plus de ressaisie manuelle pour l'exploitation : les ordres sont générés automatiquement et chacun reste traçable.
NestJSTypeScriptCronREST
05InterneArterra · clients au Sénégal

Arterra — gestion d’exploitations minières

Développement en équipe

Application de gestion d'exploitations minières, utilisée au Sénégal.

Problème
Les données de production de plusieurs sites miniers devaient être collectées et consolidées pour que les responsables puissent piloter l'activité.
Solution
Des écrans de saisie et de consolidation des données, et des tableaux de bord pour les responsables, développés en équipe dans l'application existante.
Résultat
Les responsables suivent l'activité de leurs sites depuis une seule application.
VueTypeScriptREST
Compétences

Une stack, de bout en bout.

Front-end

  • Vue 3

    Composition API, <script setup>, composables, Pinia, Vue Router

  • TypeScript

    strict, génériques, contrats d’API typés

  • HTML / CSS

    grid, flexbox, responsive mobile-first, accessibilité

  • Vite

    configuration, proxy de dev, build de production

  • Three.js / WebGL

    scènes, chargement de modèles, optimisation mobile

Back-end

  • NestJS

    modules, DI, DTO / class-validator, guards, interceptors

  • Node.js

    Express, streams, jobs planifiés

  • API REST

    conception des ressources, validation, auth, rate limiting

  • PostgreSQL / SQL

    modélisation, requêtes, migrations

  • Automatisation

    pipelines de traitement, cron, gestion des erreurs

Infra & outillage

  • Docker

    images multi-stage, Compose, healthchecks, volumes

  • Nginx

    reverse proxy, cache, compression

  • Git

    branches, pull requests, code review

Méthode

Propre, terminé, bien fait.

01

Livrer du terminé

Une tâche est terminée quand elle est typée, testée, gère ses cas d'erreur, fonctionne sur mobile et tourne en production. Pas avant.

02

Lisibilité

Nommage explicite, modules découpés par responsabilité, pas de code mort.

03

Vérification

Je teste ce que je livre, fonctionnellement et visuellement, sur plusieurs tailles d'écran.

04

Seul ou en équipe

En autonomie complète face au client, ou dans une équipe avec ses conventions, ses PR et ses code reviews.