Développeur web & mobile · Belgique

De l'idée jusqu'à la production.

Je conçois et développe des applications web et mobile de bout en bout, du cadrage initial jusqu'à la mise en production. Six ans d'expérience, dont plusieurs années comme consultant en entreprise.

Angular · Node.js Flutter · Firebase MongoDB IA générative Certifié ISTQB

En cours

12produits menés de bout en bout
3en production
3en bêta
6+années d'expérience

Dernier en date : DonOpalier, l'application de don d'objets et d'entraide entre voisins, sur Google Play et l'App Store. Voir l'étude de cas

Ce que je construis

Chaque étape, du cadrage au déploiement.

Je prends en charge chaque étape d'un produit, du cadrage initial jusqu'au déploiement. C'est ce qui me permet de mener un projet complet sans avoir à le découper entre plusieurs intervenants.

Conception

Cadrer le besoin, modéliser le métier, définir ce qui entre dans le périmètre.

Interface web

Applications Angular, de la maquette au composant réutilisable.

Application mobile

Développement Flutter et Dart, pour Android et iOS.

Backend

API REST et modélisation des données : Node.js, MongoDB, Firebase.

Comptes et paiements

Intégration d'Auth0, Firebase Authentication et Stripe.

Mise en production

Déploiement, hébergement Google Cloud, publication sur les stores.

Étude de cas

DonOpalier, le don d'objets et l'entraide entre voisins.

Une application mobile publiée sur Google Play et l'App Store, conçue et développée de bout en bout : les habitants d'une même communauté se donnent gratuitement des objets et se rendent des services bénévoles.

En production App mobile Android · iOS

Les voisins ignorent ce qui est disponible juste à côté de chez eux.

Les grandes plateformes d'annonces couvrent un territoire trop vaste et imposent des déplacements. Résultat : un objet en bon état finit à la poubelle alors qu'il aurait trouvé preneur à quelques portes de là. DonOpalier fait le pari inverse : des échanges qui restent entre gens qui habitent au même endroit.

Tout s'organise autour de la communauté : un immeuble, une résidence, une ville ou un village, une résidence étudiante, un camping. On la rejoint par QR code, par son code ou par une recherche, et l'on peut en suivre jusqu'à six, pour passer de l'une à l'autre depuis l'accueil. On y publie un objet à donner, photos à l'appui, ou un besoin de coup de main : monter un meuble, jardiner, dépanner un ordinateur, garder un animal. Une annonce non donnée expire d'elle-même au bout de trente jours et se republie en un geste.

L'application n'a pas de messagerie, et c'est un choix. Tout passe par un rendez-vous structuré : une date, une heure et un lieu, que l'autre confirme, refuse ou contre-propose. Moins de friction, moins de dérapages, rien à modérer. La vie privée suit la même logique : aucune adresse demandée, aucune géolocalisation, et l'e-mail ne sert qu'à se connecter ; les autres membres ne voient qu'un nom abrégé ou un pseudonyme.

Une seule application sert trois rôles. L'habitant donne et rend service. Le gestionnaire (syndic, commune, bailleur) modère sa communauté et suit un rapport d'impact (déchets évités, CO₂ évité, valeur partagée), exportable en PDF ou en CSV, sans jamais accéder aux adresses e-mail ni aux rendez-vous des habitants. L'administrateur gère les communautés, les catégories et la modération. Une commune ou un syndic peut aussi parrainer ses communautés : son logo, sa couleur et ses annonces s'affichent alors chez ses habitants.

FlutterDartFirebase AuthFirestore Security RulesCloud FunctionsFirebase Storage FCMApp CheckAdMob
Mon rôle
Tout : conception produit, modélisation du domaine, application Flutter pour Android et iOS, modèle de données, Security Rules et publication sur les deux magasins.
Le défi
Tenir chaque règle métier sans serveur. Une demande par personne et par objet, trente publications au plus par vingt-quatre heures : ces invariants reposent sur des identifiants Firestore déterministes, si bien qu'un client modifié ne peut pas les contourner.
Parti pris d'architecture
Aucun backend : l'application parle directement à Firebase, et les Security Rules sont la seule couche d'autorisation, couvertes par plus de 550 tests automatisés. Deux Cloud Functions seulement, admises sur un critère explicite : impossible sans serveur, jamais seulement plus pratique.
Une décision qui n'est pas technique
Les catégories de services sont figées dans le code et dans les règles de sécurité. Les métiers réglementés (électricité, gaz, chauffage, plomberie, toiture) en sont exclus par construction : un voisin non qualifié qui causerait un dégât engagerait la responsabilité de l'éditeur.
État
En production sur Google Play et l'App Store. Gratuite pour les habitants, sans commission. Site : donopalier.be · installer l'application.

Architecture

APPFlutter, Android et iOShabitant, gestionnaire et admin : une seule app, selon le rôle
AUTHFirebase Authentication + App Checkle compte, et la preuve que c'est bien l'app qui parle
DONNÉESCloud Firestoreles Security Rules, seule autorité
FICHIERSFirebase Storagephotos des annonces, hébergées en Belgique
SERVEUR2 Cloud Functionsnotifications push, recherche de membres
REVENUSParrainage, AdMob, dons facultatifsun don ne débloque rien : l'app reste la même pour tous

Autres réalisations

Du SaaS à l'objet physique.

Neuf produits qui couvrent le SaaS, l'objet connecté, le mobile, le paiement en ligne, l'IA générative et l'électronique sur mesure.

En production SaaS complet

Prouvex

Un SaaS qui transforme un avis négatif en preuve vérifiable.

Un commerce documente une amélioration concrète : son contexte (un avis, un contrôle sanitaire, une initiative), les actions réalisées et des preuves à l'appui, photos avant/après, captures, justificatifs. Cette résolution est publiée sur sa page publique, et les visiteurs peuvent suivre les commerces pour recevoir leur fil d'améliorations. Une plateforme de preuves ne vaut que par sa crédibilité, d'où un cadre strict : Prouvex ne supprime aucun avis, n'en crée aucun et ne décide jamais qui a raison.

Angular 21PrimeNGNode.jsExpress MongoDBAuth0StripeFirebase Storage BrevoGoogle Cloud
En savoir plus

Mon rôle : tout : vision produit, modélisation du domaine métier, architecture, développement full stack, sécurité et déploiement.

Parti pris d'architecture : le domaine métier reste indépendant des bibliothèques. Auth0, Stripe ou MongoDB doivent pouvoir être remplacés sans toucher aux règles métier.

Défis techniques : garder la création d'une résolution assez simple pour qu'un commerçant la termine, sans jamais sacrifier la crédibilité qui fait la valeur de la plateforme. Les résolutions contenant des captures d'écran passent par une modération avant publication, et l'authentification Auth0 à double facteur distingue quatre rôles : visiteur, utilisateur, commerce et administrateur.

État : en production et utilisé, sur prouvex.com. Gratuit et sans engagement.

En production Capteur → cloud

Neurokicker

Un babyfoot qui détecte chaque but et devient une plateforme de tournois en temps réel.

Des capteurs infrarouges détectent le but, la table l'émet en WiFi, un serveur Node.js le rediffuse instantanément. L'application web suit les matchs en direct, gère classements et tournois complets, avec comptes sécurisés et abonnement Freemium. C'est le projet qui traverse toute la chaîne, de l'électronique au paiement.

C/C++ArduinoNode.jsWebSockets MongoDBAngularAuth0Stripe
En savoir plus

Mon rôle : conception et développement de bout en bout : électronique, code embarqué, backend, application Angular et gestion des comptes.

Défis techniques : transmettre chaque but sans latence perceptible et garder table, serveur et spectateurs parfaitement synchronisés.

Genèse : tout est parti de la V1, un prototype à deux Arduino, matrices LED 8×8 et capteurs infrarouges. Voir la vidéo.

État : en production, neurokicker.com.

Marketplace B2B Bêta

ProOpalier

Le réemploi de matériaux de chantier entre entrepreneurs, paiement et commission compris.

Un professionnel du bâtiment publie les matériaux de réemploi, le matériel ou les services dont il dispose ; un autre les demande, les deux conviennent d'un rendez-vous sur le chantier, et le règlement se fait sur place au moment de la remise. ProOpalier ne détient jamais les fonds : ils vont directement au compte du vendeur, et seule la commission — 3 %, plafonnée à 40 € — est prélevée au passage. Le pendant B2B de DonOpalier, avec ce que l'argent impose en plus : facturation, TVA et pièces comptables.

FlutterDartFirebaseFirestore Cloud FunctionsStripe ConnectSecurity Rules
En savoir plus

Mon rôle : conception produit et développement complet : application Flutter, modèle de données, Security Rules, Cloud Functions de paiement et facturation des commissions.

Parti pris d'architecture : les Security Rules Firestore sont la seule couche d'autorisation, et le code serveur est strictement borné au paiement. Le critère d'admission est explicite : impossible sans serveur, jamais seulement plus pratique. Une clé secrète Stripe ne peut pas vivre dans un APK — c'est l'unique raison pour laquelle des Cloud Functions existent ici.

Défis techniques : les charges « destination » de Stripe Connect font du vendeur le commerçant de la transaction, ce qui garde la plateforme dans son rôle d'intermédiaire et hors du statut d'établissement de paiement. Le webhook, lui, doit rester juste quand les évènements arrivent dans le désordre ou qu'une annonce disparaît entre la carte et la confirmation : un échec périmé ne doit jamais écraser un paiement encaissé.

État : bêta. Le parcours complet a été vérifié sur téléphone, de la publication de l'annonce jusqu'au paiement par carte encaissé en mode test, commission prélevée à la source.

App mobile Bêta

CartesEtGo

Les cartes de fidélité dans le téléphone, sans jamais en perdre une, même sans réseau.

On scanne une carte une fois, puis on la présente en caisse sur un écran dédié : fond blanc, luminosité au maximum, code-barres ou QR selon ce que lit la caisse. Le projet est né d'une frustration précise, une application qui supprimait des cartes au hasard. D'où une règle qui tranche chaque arbitrage : quand une fonctionnalité s'oppose à une garantie de non-perte, c'est la garantie qui gagne. Une carte scannée hors connexion est enregistrée sur-le-champ et se synchronise d'elle-même au retour du réseau, même si l'application a été fermée entre-temps.

FlutterDartFirebase AuthFirestore Security RulesAdMobAchats intégrésGitHub Actions
En savoir plus

Mon rôle : tout : conception produit, application Flutter, modèle de données, Security Rules, intégration continue et publication sur Google Play.

Parti pris d'architecture : aucune base locale ajoutée par-dessus Firestore. Sa persistance hors ligne garde déjà sur le téléphone les cartes et la file des écritures pas encore confirmées ; une seconde base aurait créé deux sources de vérité à réconcilier, exactement le genre de mécanisme qui fait perdre des cartes. Pas de backend non plus : les Security Rules sont la seule frontière d'autorisation.

Défis techniques : une écriture faite hors ligne n'est confrontée aux Security Rules qu'au moment où elle est rejouée, parfois des heures plus tard ; si une règle la refuse alors, la carte disparaît sans erreur visible. Les règles ne vérifient donc que des faits stables, le propriétaire et le type des champs, et un test garantit qu'une carte créée il y a longtemps passe encore. À l'écran caisse, le code est dessiné en vectoriel : un bitmap agrandi donne des barres floues que les lecteurs laser refusent.

État : bêta, en test fermé sur Google Play ; l'application n'est pas encore ouverte au public. Gratuite jusqu'à douze cartes, financée par un bandeau publicitaire — jamais à l'écran caisse, où le pouce se trouve juste là — et par une option payante qui lève la limite. La sauvegarde et le mode hors ligne restent gratuits, quoi qu'il arrive.

Marketplace Bêta

Agorex

Une place de marché de conférences en direct, de l'inscription payante au lien de connexion.

Des formateurs, coachs ou diététiciens, publient des sessions en visioconférence sur Zoom, Teams ou Meet. Les participants s'inscrivent, paient en ligne et reçoivent le lien quinze minutes avant le début, par e-mail et sur la fiche de la conférence ; la plateforme retient une commission sur chaque vente. Autour de ce parcours : coupons, jauge de places et liste d'attente, avis réservés aux participants, rappel avant la séance, replay et ajout à l'agenda.

AngularPrimeNGNode.jsExpress MongoDBAuth0Stripe ConnectBrevo
En savoir plus

Mon rôle : tout : conception produit, architecture, développement full stack Angular et Node.js, intégration des paiements et sécurité.

Parti pris d'architecture : le formateur est le vendeur. Avec Stripe Connect, chaque place est vendue pour son compte et la plateforme ne perçoit que sa commission, au lieu de faire transiter le prix entier par son propre chiffre d'affaires.

Défis techniques : le lien de réunion ne quitte jamais le serveur avec la conférence : il n'est servi qu'aux inscrits, de quinze minutes avant le début à quatre heures après. Le montant est toujours calculé par l'API, coupon compris, et c'est le webhook Stripe, signé et idempotent, qui fait foi du paiement. Une place est prise dès l'ouverture du paiement et rendue par un seul chemin, pour que la jauge ne dérive jamais.

État : bêta, pas encore en ligne. Le produit est complet et le parcours d'achat a été mené de bout en bout contre Stripe en mode test ; restent le déploiement sur son nom de domaine et le passage de Stripe en mode réel.

Outil métier Prototype

AlloRappel

Les rappels de rendez-vous par SMS d'un indépendant, automatisés sans coût par message.

Un professionnel qui travaille sur rendez-vous, logopède, kiné ou coiffeur, envoie ses rappels un par un chaque soir depuis son téléphone. AlloRappel prépare la liste du lendemain et envoie les rappels en un geste, un par un ou en lot, avec un historique de ce qui est parti. Le SMS part toujours de la SIM et du forfait déjà payés, par une passerelle installée sur le même téléphone : aucun abonnement, aucun coût par message.

FlutterDartFirebase AuthFirestore Security RulesCloud FunctionsTypeScriptAPI Anthropic
En savoir plus

Mon rôle : tout : cadrage, application Flutter pour Android, modèle de données, Security Rules et Cloud Functions.

Parti pris d'architecture : l'IA rédige des gabarits, jamais des messages. Une Cloud Function demande à l'API Anthropic un modèle de texte par ton, sans aucune donnée personnelle ; le prénom, le jour et l'heure ne sont insérés qu'ensuite. Une réponse qui contient autre chose que ces trois champs, ou qui dépasse la longueur d'un SMS, est refusée, et l'application retombe sur des gabarits écrits à la main.

Défis techniques : les personnes à protéger ne sont pas l'utilisateur de l'application mais ses clients, et un rendez-vous chez un logopède est une donnée de santé par déduction. D'où des durées de conservation courtes, appliquées par une purge nocturne, un export et une suppression complète des données, et un numéro qui a demandé à ne plus être contacté conservé sous forme d'empreinte, jamais en clair.

État : prototype. Le MVP est complet et couvert par 254 tests automatisés, mais il n'a pas encore été installé sur un téléphone : le premier essai en conditions réelles reste à faire.

IA générative Archivé

Decidai

Une app mobile qui vous aide à décider en vous faisant raisonner, plutôt qu'en décidant à votre place.

Portée par Google Gemini, Decidai engage une conversation stratégique pour analyser un problème complexe et clarifier vos priorités. À l'issue de l'échange, l'application restitue une recommandation claire, une analyse des arguments « pour » et « contre », et des statistiques visuelles.

FlutterDartNode.jsTypeScript FirebaseGoogle GeminiAdMob
En savoir plus

Mon rôle : conception produit et développement complet : application mobile Flutter et backend Firebase Cloud Functions.

Défis techniques : orchestrer un dialogue IA cohérent avec Gemini et transformer une conversation libre en recommandation structurée et exploitable.

État : archivé. Le développement a été arrêté avant publication ; la monétisation prévue reposait sur Google AdMob.

Archivé Plateforme web

Cestpasfrancais

Une plateforme d'apprentissage du français, avec suivi pédagogique.

Les étudiants consultaient leurs cours en ligne pendant que les professeurs déposaient leurs contenus et suivaient la progression de chacun. Restée en version Alpha, la plateforme a réuni une quarantaine d'inscrits avant que je l'arrête ; elle n'est plus en ligne.

AngularNode.jsMongoDB
En savoir plus

Mon rôle : conception et développement complets : interface, backend et modélisation de la base de données.

Défis techniques : modéliser une base adaptée au suivi pédagogique et sécuriser distinctement les accès professeurs et étudiants.

État : archivé. La plateforme n'est plus accessible en ligne.

Électronique Archivé

Poprojection

Un boîtier lumineux sur mesure pour sublimer les figurines de collection.

Un Arduino Nano et un circuit LED RGB télécommandé permettent de personnaliser l'éclairage d'un boîtier circulaire, fabriqué sur mesure en partenariat avec un imprimeur 3D professionnel.

C/C++ArduinoImpression 3D
En savoir plus

Mon rôle : conception électronique, développement du code embarqué et coordination avec l'imprimeur 3D pour le boîtier sur mesure.

État : produit finalisé, projet archivé.

DonOpalier s'installe sur mobile, Prouvex et Neurokicker s'ouvrent directement dans le navigateur. ProOpalier, CartesEtGo et Agorex y figurent en attendant leur ouverture au public.

Voir les applications

Expertise

Ce que je sais faire, et où je l'ai fait.

Une compétence ne vaut que par ce qu'elle a produit. Chaque domaine ci-dessous renvoie au projet où il a été mis en œuvre.

Développement web

  • Angular
  • Node.js
  • TypeScript
  • Java
  • API REST

Mis en œuvre sur Prouvex, Neurokicker, Agorex et Cestpasfrancais.

IA dans les produits

  • Google Gemini
  • API Anthropic
  • Orchestration de dialogue
  • Sortie structurée

Mis en œuvre sur Decidai et AlloRappel.

IA comme outil de travail

  • Claude
  • ChatGPT
  • Gemini
  • Conception de prompts

Utilisée quotidiennement pour concevoir, développer et documenter plus vite. Je sais formuler et affiner un prompt pour obtenir un résultat exploitable plutôt qu'approximatif.

Électronique

  • Arduino
  • ESP32
  • Capteurs

Projets personnels : Neurokicker et Poprojection.

Architecture & qualité

  • Conception SaaS
  • Auth0
  • Stripe
  • Tests · ISTQB

Mis en œuvre sur Prouvex, ProOpalier et Agorex.

Portrait de Fabio Butera

Parcours

La rigueur de la consultance, la vitesse de l'entrepreneur.

Diplômé en télécommunications et réseaux avec une spécialisation marquée dans le développement, j'interviens aujourd'hui comme consultant. Mon socle technique s'articule autour des écosystèmes Angular et Node.js.

J'ai commencé comme indépendant complémentaire pendant mes études, avant d'enrichir mon expérience dans la conception d'applications web complètes et la gestion de clientèle. Mon passage par la formation en nouvelles technologies a affiné ma pédagogie et ma capacité d'adaptation. J'évolue aujourd'hui au cœur d'équipes pluridisciplinaires, où j'assure le développement, les tests logiciels et le support de bout en bout.

Cette double culture est ce qui me caractérise : la structure et les exigences de qualité du travail en entreprise, combinées à la capacité de livrer seul un produit complet.

Certifications & formations

  • Certification ISTQB Foundation Level, tests et qualité logicielle
  • Formation Orsys, développement Java
  • 7e année de spécialisation en Automation

Contact

Une question ? Écrivez-moi.

Une question sur un projet, une opportunité, ou simplement l'envie d'échanger sur un sujet technique. Je réponds sous 48 heures.

Me joindre directement

Voir mon parcours sur LinkedIn