Disponible Full Remote · 20 ans · Perpignan · FR / EN

Ingénieur Logiciel
Fullstack & Systèmes.

Autodidacte passionné depuis l’enfance (plus de 10 ans de pratique de la programmation). Je conçois des systèmes performants, fiables et maintenables de bout en bout. Actuellement chez Metis Digital, où j’implémente les moteurs d’intégration aérienne NDC pour Air France / KLM, Vueling et Volotea — des flux transactionnels critiques soumis à de fortes contraintes financières et de disponibilité.

Technologies de prédilection : TypeScript, Vue / Nuxt 4, Node.js, Go, Rust, WebAssembly, PostgreSQL et infrastructure déclarative sous NixOS.

Metis Digital · depuis juillet 2025

Moteurs de réservation aérienne NDC & GDS

Bien que formalisé par l’IATA, chaque transporteur applique sa propre implémentation du protocole NDC. J’ai conçu et développé la couche d'orchestration unifiée permettant de brancher de façon transparente Air France / KLM, Vueling et Volotea derrière une API commune.

  • Cycle complet de réservation : Conception des pipelines de vol — Shopping, Pricing, Instant Booking, sélection des sièges et gestion de 19+ fonctionnalités ancillaires (bagages, embarquement, options).
  • Intégrité financière & transactionnelle : Réconciliation des frais de carte bancaire, gestion des règlements BSP et verrouillage contre le price drift entre la recherche et l’émission du billet.
  • Résolution d'anomalies critiques Kyte : Diagnostic et correction d'un bug complexe de duplication de passagers et de double facturation dans le bac à sable de l'agrégateur GDS. Normalisation des flux d'erreur et fiabilisation des retries.
  • Qualité E2E pilotée par la donnée : Développement de suites de tests Playwright automatisées adossées à une validation stricte par schémas Zod pour rejeter les anomalies en amont.

Nuxt 4 · Vue 3.5 · TypeScript · Node.js · PostgreSQL (Sequelize) · Playwright · Zod · IATA NDC · Docker

Notes d'architecture & Choix techniques (ADRs) 3 études de cas
ADR-01 Idempotence & Prévention du Price Drift sur les flux IATA NDC
Dans le protocole NDC, la tarification d'un vol (Shopping) et sa confirmation d'émission (Booking) sont asynchrones. Un timeout réseau du transporteur ou un rafraîchissement utilisateur peut entraîner soit un double débit carte bancaire, soit une invalidation de tarif en cours de route (price drift).
Problème & Risque
Anomalies Kyte / GDS : déconnexions transitoires, requêtes rejouées provoquant des réservations orphelines et conflits de sièges.
Solution Déployée
Clé d'idempotence dérivée de l'empreinte SHA-256 du panier, verrou distribué avec TTL strict, transaction à deux phases et réconciliation asynchrone des flux d'erreur.
Impact mesurable : 0 doublon de réservation constaté en production, résilience totale face aux micro-coupures d'APIs tierces et conformité stricte aux règlements financiers BSP.
ADR-02 Parsing de flux binaires en Rust/WASM : Zéro allocation superflue vs V8
Pour HexPigeon, disséquer des fichiers de plusieurs mégaoctets (trames DNS, binaires ELF, tokens NDC) en pur JavaScript saturait le moteur V8 avec des centaines de milliers de petits objets alloués sur le tas, déclenchant des pauses de Garbage Collection de plus de 180ms.
Goulot d'étranglement
Saccades du thread principal UI lors du scroll et du survol interactif des octets dus aux copies mémoire successives.
Approche WebAssembly
Moteur de parsing écrit en Rust, opérant directement sur un tampon linéaire WebAssembly (ArrayBuffer partagé). Découpage sans copie (zero-copy slices) et matérialisation différée des seuls nœuds affichés.
Résultat : Fluidité 60 FPS constante même sur des structures imbriquées de 15 000 champs, empreinte mémoire divisée par 6.
ADR-03 Infrastructure déclarative & Rollbacks atomiques sans dérive sous NixOS
L'auto-hébergement de services de production (Caddy HTTP/3, OCI Gitea, Cloudflare DynDNS) sur une seule machine bare-metal nécessite une garantie formelle contre les états fantômes (configuration drift) et les régressions post-mise à jour.
Limites traditionnelles
Les scripts Ansible ou configurations manuelles sous Debian/Ubuntu finissent inévitablement par accumuler des résidus orphelins et des états non reproductibles.
Architecture Nix Flakes
L'intégralité du système est un arbre d'évaluation pur et versionné. Chaque rebuild génère une clôture cryptographique autonome dans /nix/store. La bascule système est atomique via symlink.
Résultat : Restauration instantanée en 1 commande vers n'importe quelle génération précédente, zéro downtime imprévu et isolation hermétique de chaque service.
Projet système · Rust / WebAssembly / Reverse Engineering

HexPigeon — Dissecteur Binaire & Moteur d'Analyse en Mémoire Linéaire

Moteur d'analyse et de dissection binaire haute performance compilé en WebAssembly (Rust natif) avec allocation linéaire zéro-pause. Conçu pour disséquer des trames réseau et des en-têtes d'exécutables (ELF AMD64, Ethernet/IPv4/TCP, DNS, PNG) sans saturer le Garbage Collector V8.

Composants techniques intégrés : arbre AST dynamique évalué en mémoire linéaire, calcul continu de l'entropie mathématique de Shannon ($H(X)$) pour identifier les sections chiffrées ou compressées, décodeur linéaire d'instructions machine AMD64 / x86_64 développé en Rust, et validation de sommes de contrôle polynomiales (CRC-32, CRC-16).

Rust · WebAssembly · Reverse Engineering · x86_64 ASM · Shannon Entropy · Vue 3 / TS

Projet perso · Go / C ABI

HIR — HML Image Renderer

Moteur de rendu raster produisant des images PNG à partir d'un balisage personnalisé, conçu pour fonctionner sans navigateur headless (zéro surcoût mémoire de Chromium, démarrage à froid inférieur à 15ms).

Pipeline complet : analyseur lexical, moteur de calcul de layout vectoriel et rastérisation 2D anti-aliasée. Compilé sous forme de bibliothèque partagée C (libhir.so) avec bindings FFI natifs pour Node.js, Dart et Python, serveur HTTP avec limitation de débit et mode watch.

Go · C FFI · REST API · CI/CD

POC · Rust / Cryptographie

Signature PDF PAdES

Serveur local de signature électronique de documents PDF conforme à la norme PAdES. Signature cryptographique via certificat PKCS#12, horodatage certifié, piste d’audit infalsifiable avec SQLite et API HTTP haute performance propulsée par Axum.

Rust · Axum · OpenSSL · SQLite

Open Source · TypeScript / Bun

Zephyr — Moteur de Templating par Composants Sans Dépendance

Moteur de templating ultra-rapide basé sur des composants (.gzs) compilés directement vers du HTML natif pour l'écosystème Bun. Conçu sans aucune dépendance externe pour éliminer tout surcoût d'exécution.

Analyseur syntaxique dédié, arbre syntaxique abstrait (AST) résolu à la volée, interpolation typée et gestion récursive des slots.

TypeScript · Bun · Compilateur AST · Zero-Dependency

Frontend Vue 3 (Composition API), Nuxt 4, TypeScript, Pinia, Playwright, Zod, Responsive CSS
Backend & Systèmes Node.js, Express, Go, Rust, WebAssembly, C ABI / FFI, REST, OpenAPI, specs IATA NDC
Bases de données PostgreSQL, SQLite, Redis, Sequelize, Prisma, modélisation relationnelle
Infra & DevOps NixOS (déclaratif), Caddy 2, Docker OCI, Linux sysadmin, Git, CI/CD
Langues Français (maternelle) · Anglais (compétence professionnelle complète)
01 Conception orientée défaillance & Idempotence

Tout appel réseau finira par échouer ou par expirer. Toute écriture critique doit être strictement idempotente, bornée par un retry exponentiel avec jitter et capable de s'auto-réconcilier sans intervention manuelle.

02 Contrats formels & Typage strict aux frontières

Aucune donnée externe ne franchit le seuil du système sans validation formelle stricte (Rust, TypeScript, schémas Zod). Les anomalies de parsing doivent être impossibles par design avant d'atteindre le cœur métier.

03 Reproductibilité déclarative absolue

Un système qui ne peut pas être reconstruit à partir de zéro en une seule commande n'est pas maîtrisé. De l'OS (NixOS) aux conteneurs OCI, chaque fichier de configuration doit être versionné et traçable dans Git.

04 Pragmatisme & "Boring Technology"

Les architectures les plus élégantes sont celles qui ne demandent pas à être réécrites dans six mois. Préférer les primitives Unix robustes, la compilation native et les standards éprouvés aux abstractions superflues.

Ce portfolio et mon instance Git sont auto-hébergés sur un serveur physique dédié sous NixOS 25.11 (accessible sur delikesance.cloud). L'ensemble de la machine est modélisé de façon strictement déclarative : chaque paquet, service système et politique réseau est versionné dans un Flake Nix autonome.

Caddy assure la terminaison TLS (HTTP/2 et HTTP/3 QUIC) et le reverse-proxying avec renouvellement automatique des certificats. Cloudflare protège la zone DNS avec un démon DynDNS automatisé. L'instance Gitea tourne dans un conteneur OCI hermétiquement isolé avec persistance sur volumes montés.

Système d'Exploitation NixOS 25.11 (Warbler) · Noyau Linux 6.12 LTS (x86_64)
Reverse Proxy & Web Caddy 2 · HTTP/2 · HTTP/3 (QUIC) · TLS automatique Let’s Encrypt
Forge Git Privée git.delikesance.cloud · Gitea en conteneur OCI rootless isolé (SSH & HTTPS)
Réseau & Edge Cloudflare Edge · delikesance.cloud (DynDNS automatisé, chiffrement de bout en bout)
Reproductibilité & IaC Modules Nix déclaratifs hermétiques · Flake versionné dans Git · Rollbacks atomiques instantanés

Ouvert aux opportunités en Full Remote (CDI, contrat ou mission technique exigeante).

Contact direct : clauinangelo@proton.me · Curriculum Vitae (PDF) · GitHub (@delikesance)

Email copié dans le presse-papier
Navigation
Profil (Accueil)
GH
Expérience (Metis Digital / NDC)
GW
Projets (HexPigeon, HIR, PAdES, Zephyr)
GP
Compétences & Principes
GS
Infrastructure & Système NixOS
GI
Actions Rapides
Copier l'adresse Email
C
Télécharger le Curriculum Vitae (PDF)
D
Explorer le profil GitHub (@delikesance)
H
Ouvrir la Forge Gitea (git.delikesance.cloud)
G
Afficher la version Terminal ANSI (curl)
T