Ingénieur logiciel — systèmes métier où l'erreur coûte cher.
Je conçois et construis des systèmes où une erreur se paie : santé,
comptabilité en partie double, conformité réglementaire, applications qui
doivent fonctionner sans réseau. Deux piles back-end,
Laravel et NestJS, avec React côté
interface. Je travaille à distance, en sous-traitance pour des agences et
des éditeurs européens.
Sept métiers — réception, médecins, infirmiers, laboratoire, pharmacie,
caisse, administration — travaillant sur les mêmes dossiers patients.
Et pas d'internet fiable. Une clinique ne s'arrête pas
parce que la connexion tombe.
La décision
Une application de bureau, une base PostgreSQL sur un poste serveur, les
postes connectés par le réseau local. Le contrôle d'accès est posé sur
chaque point d'entrée de l'API, pas seulement dans
l'interface : masquer un bouton n'a jamais protégé une donnée.
Ce que ça tient
La clinique tourne coupée du monde. Chaque action est attribuée à
quelqu'un, et « qui a consulté ce dossier » a une réponse.
Le poste laboratoire : la file de travail, l'état de chaque analyse, et l'étape de validation avant qu'un résultat devienne officiel. À gauche, les douze modules — un par métier.
Electron · React · PostgreSQL · Knex · JWT — back-end en migration d'Express vers NestJS
Amayo.fr — un SaaS construit de zéro, et exploité
amayo.fr · 2 038 utilisateurs · en production depuis le 15 septembre 2026
La contrainte
Un logiciel de gestion de contenu en direct pour les églises : projection
sur écrans, sorties vidéo vers OBS et vMix, Bible, chants, abonnements
Stripe, temps réel. Il sert le dimanche matin, en direct, devant
une assemblée — un écran noir ne se rattrape pas à midi.
La décision
Conception et développement complets : l'API, la base, l'interface, le
temps réel, la facturation, et une application de bureau distincte que
les églises installent dans leur régie pour diffuser sur leurs écrans
physiques. Puis une mise en production traitée comme une opération :
inventaire de la base ligne à ligne — il a montré que l'administration
affichait « 94 abonnés Stripe » là où il y en avait 33 —
répétition générale sur une base jetable, runbook minuté, point
GO / NO-GO, retour arrière possible en cinq minutes, et
une règle de conduite : une seule personne tape, une autre relit et coche.
Ce que ça tient
Deux mille utilisateurs, un millier de sessions actives, des abonnements
qui se renouvellent. Et je l'exploite au quotidien :
supervision, incidents, migrations, évolutions. Cinq pannes certaines ont
été attrapées avant l'ouverture — dont un webhook Stripe dont la
signature n'aurait jamais été valide, et dont personne ne se serait
aperçu avant des semaines.
La console de régie : à gauche ce qui est préparé, à droite ce qui est projeté sur l'écran de l'assemblée. Entre les deux, un bouton — et aucun droit à l'erreur.
Vimaiz — garder le contrôle d'un logement à distance
vimaiz.com · entretien de logements en location saisonnière, France
La contrainte
Un propriétaire loue son logement à plusieurs centaines de kilomètres.
Entre deux voyageurs, quelqu'un doit y entrer, le préparer, et repartir.
Un intervenant absent, un logement pas prêt, une anomalie découverte trop
tard — et le propriétaire l'apprend par le voyageur suivant.
La décision
Rendre vérifiable ce que personne n'a pu voir. Aucun intervenant ne reçoit
de mission tant que ses documents ne sont pas validés. Arrivée, début,
durée, liste de contrôle et anomalies sont enregistrés, et il faut
trois photos avant, trois après, géolocalisées — sans
elles, la mission ne peut pas se clore. L'intervenant n'est pas choisi à
la main : un score pondéré décide, après des filtres d'éligibilité
stricts. Et le paiement est idempotent : une mission déjà
liée à un identifiant Stripe n'est jamais recréée.
Ce que ça tient
Le propriétaire absent voit ce qu'il a payé, horodaté et localisé.
L'intervenant a de quoi se défendre. Un litige a une procédure, pas un
formulaire de contact. Et l'argent ne sort pas tout seul : un retrait crée
une transaction en attente que l'administration valide.
La demande d'intervention : logement, créneau, surface, et l'estimation affichée avant tout engagement.
Pécule — une comptabilité où l'on ne peut pas créer d'argent
Mutuelle d'épargne et de crédit · système propre
La contrainte
Cotisations, prêts, remboursements, intérêts. Chaque franc doit être
justifiable des années plus tard, devant des membres qui comptent.
La décision
Comptabilité en partie double : aucun solde n'est stocké
comme une valeur modifiable. Un solde est toujours la somme de ses
écritures. On ne peut structurellement pas créer d'argent, parce
qu'il n'existe aucun chemin de code pour écrire un
montant sans sa contrepartie.
Ce que ça tient
Tout écart s'explique en remontant les écritures. Une erreur ne se corrige
pas en modifiant le passé : elle se contre-passe, et les deux restent
visibles — parce qu'un membre a le droit de voir qu'on a corrigé, et
pourquoi.
Chaque mouvement laisse une écriture équilibrée, horodatée, impossible à effacer. Débit égale crédit, toujours.
Laravel · PostgreSQL · React
Kajou — synchroniser sans jamais perdre un kilo
Collecte d'anacarde, Bénin · hors ligne d'abord
La contrainte
L'agent pèse la récolte sous un hangar et paie le producteur en espèces,
sur place. Il n'y a pas de réseau. Un producteur payé deux fois, ou pas
payé, c'est un conflit dans un village — pas un ticket
de support.
La décision
On synchronise des opérations, jamais des états. Chaque
pesée est un fait immuable, et rejouer une opération n'a aucun effet. Le
serveur ne croit ni l'horloge ni le calcul de l'appareil : il recalcule.
Et aucun conflit ne se résout automatiquement — « le
dernier qui écrit gagne » est une façon élégante de perdre les kilos d'un
paysan. Tout cas ambigu crée une tâche d'arbitrage, les deux versions
côte à côte.
Ce que ça tient
Un appareil peut rester hors ligne des jours, tomber en panne, être
remplacé : rien ne se perd et rien ne se compte deux fois. Un trou dans
la séquence est détecté au lieu d'être ignoré.
La pesée sous le hangar, sans réseau : sacs, poids brut, prix appliqué, montant à remettre. Le bordereau s'imprime sur place.
Une administration ne demande pas de montrer les factures. Elle
demande de prouver qu'aucune ne manque et qu'aucune n'a
été modifiée. Deux questions distinctes, deux pièges distincts.
La décision
Deux mécanismes séparés. La numérotation s'incrémente sous verrou de
ligne, dans une transaction qui s'annule si la validation échoue : une
facture refusée ne consomme pas de numéro. L'intégrité repose sur un
chaînage d'empreintes calculé sur une forme canonique du
modèle, pas sur le fichier XML — sinon une mise à jour de
bibliothèque réordonne un attribut et toutes les factures deviennent
« altérées » d'un coup.
Ce que ça tient
Le contrôle rend un verdict binaire et désigne la première
pièce en défaut, pas les trois cents suivantes qui n'en sont que la
conséquence. Une facture modifiée directement en base, en contournant
l'application, est détectée.
Une facture validée, ses champs normalisés selon la norme européenne, et l'empreinte qui prouve qu'elle n'a pas bougé depuis.
Également : Supreme Music (Laravel) ·
Relève, moteur de planification sous contraintes —
16 règles métier, 411 tests, 28 invariants vérifiés contre PostgreSQL ·
RonasDev, chaîne technique et formation de développeurs
depuis 2021.
Ce que je fais bien
Les systèmes où une donnée fausse ne lève aucune erreur. Argent, santé, conformité, stocks : les pannes qui ne se voient pas dans les logs, mais dans un appel téléphonique.
Reprendre l'existant de quelqu'un d'autre sans rien casser. Inventaire, répétition générale, retour arrière possible. C'est ce qu'une agence craint le plus de confier.
Deux piles back-end plutôt qu'une. Laravel pour l'héritage PHP, NestJS pour le récent. Une agence n'a pas à chercher deux sous-traitants.
Le hors-ligne qui n'est pas un mode dégradé. Applications de terrain, réseau local, synchronisation par opérations.
Travailler avec moi
Prestation
Tarif
Journée de développement, en sous-traitance
150 €
Journée d'architecture, de conception ou d'audit
200 €
Forfait projet
dès 1 000 €
Accompagnement technique mensuel
600 € / mois
Acompte de 30 % sur les forfaits, facturation à 30 jours.
Le premier échange sert à savoir si je peux être utile. Si je ne peux pas, je le dis.