Portrait de Rachid Jeffali

Rachid Jeffali

rôle
Backend Architect
terrain
SaaS · DDD · concurrence · PostgreSQL
langages
Python · TypeScript · Kotlin
où
France, remote

Je conçois des backends dont la tenue est mesurée, pas supposée : plateformes SaaS, monolithe modulaire en DDD, concurrence et PostgreSQL. Dernièrement, de 5 à plus de 1 000 opérations simultanées chez XPONE, donnees-france.fr en production, des bibliothèques publiées sur PyPI et des agents de code tenus par des garde-fous.

Cinq points orange avant, mille points bleus après avant · 5 après · 1 000+
FIG. 1Opérations d'enrichissement menées en même temps chez XPONE : 5 avant la refonte de la concurrence, en orange ; plus de 1 000 après, en bleu. Un point par opération.

Expérience

Chaque poste a sa figure dans la marge. L'orange y marque toujours l'état de départ, le bleu l'état obtenu.

août 2025 – aujourd'huiStartup SaaS B2B
Remote

Backend Architect & Full-Stack Engineer · XPONE

Plateforme d'automatisation de la prospection multicanale.

  • Architecture backend en monolithe modulaire structuré selon le DDD ; frontières entre modules vérifiées par ArchUnit et par des tests à seuils qui ne peuvent que baisser, sans grand chantier de refonte.
  • Refonte de la concurrence de l'enrichissement : transaction coupée en trois et Java Virtual Threads. La connexion PostgreSQL passe de 3–5 s à ~10 ms, et la capacité de 5 à plus de 1 000 opérations simultanées.
  • Moteur de campagnes : quota d'envoi partagé par tourniquet pondéré (fonction pure, 87 % de score de mutation), heures calmes anti-bannissement ; garde-fous anti-rafale en base par verrou optimiste, contraintes UNIQUE et verrou distribué.
  • Fiabilité : une requête de 5,7 min sans LIMIT faisait saturer la mémoire ; statement_timeout, pagination et un test qui interdit les listes non bornées. Disjoncteurs sur les API externes.
  • Environ 6 000 tests backend et plus de 1 000 tests front, dont des tests d'acceptation écrits dans un langage métier et exécutés à trois niveaux.

Kotlin · Spring Boot · Hibernate/JPA · PostgreSQL · HTMX · WebSocket/STOMP · Docker · GitLab CI/CD · Playwright · Testcontainers · ArchUnit

Durée pendant laquelle une connexion PostgreSQL reste tenue avant · 3 à 5 s après · ~10 ms 012345 s
FIG. 2Temps pendant lequel une connexion à la base reste tenue par une opération, à l'échelle. Après la refonte, le trait bleu fait moins d'un pixel.
Livraison mesurée sur 90 jours
déploiements182
par semaine~14
du commit à la production58 min
changements en échec15 %
rétablissement médian3,5 h

janv. 2026 – aujourd'huiProjet personnel
en production

Créateur & Architecte Full-Stack · DataHexa — donnees-france.fr

Les données publiques françaises (INSEE, DVF, OFGL, RNE…) transformées en indicateurs comparables, commune par commune.

  • Pipelines d'ingestion Python, API FastAPI sur PostgreSQL/PostGIS, application Next.js d'environ 18 000 lignes en typage strict vérifié en CI.
  • Méthode statistique défendable : score de sécurité robuste (log, winsorisation, z-score par voisinage, rétrécissement bayésien pour les petites communes) et prix au m² DVF corrigés des ventes multi-lots.
  • Plus de 35 000 fiches communes rendues à la demande puis préchauffées ; cache Node.js écrit sur mesure (LRU + TTL, volume borné à 2 Gio) après une saturation disque en production.
  • Migration de domaine et de marque sans perte de référencement : redirections 301, ancien sitemap servi, répétition générale ; sitemap d'environ 33 700 URL.

TypeScript · Next.js · React 19 · ECharts · MapLibre · Python · FastAPI · pandas · PostgreSQL/PostGIS · Docker · Cloudflare

Prix au mètre carré avant et après correction des ventes multi-lots brut · 17 625 €/m² corrigé · 1 975 €/m²
FIG. 3Une vente de plusieurs lots inscrite comme une seule ligne gonfle le prix au m². Environ 33 % des lignes DVF sont dans ce cas.

sept. 2019 – déc. 2025Lille

Backend Engineer · Wassati

Plateforme SaaS d'analyse automatisée de contenus : collecte, prétraitement, scoring, exposition des résultats.

  • Étapes de collecte et d'analyse séparées pour qu'elles s'exécutent de façon asynchrone ; Apache Kafka pour les découpler et répartir la charge.
  • API backend qui exposent les résultats des pipelines de scoring.
  • Pipelines d'analyse multilingues en français, anglais et espagnol, développés et maintenus en production.

Python · FastAPI · Apache Kafka · scikit-learn · spaCy · pandas

Collecte, Kafka, analyse, API collecte Kafka analyse API fr · en · es
FIG. 4Le bus Kafka, en jaune, découple la collecte de l'analyse : l'une peut ralentir sans arrêter l'autre.

2021 – 2025France & remote

Formateur en développement logiciel · organismes de formation & entreprises

Formations en backend, architecture logicielle, qualité du code et tests automatisés, notamment pour Orange et CANAL+.

  • Accompagnement des développeurs dans la structuration d'applications, la séparation des responsabilités, la maintenabilité et la testabilité.
  • Projets et exercices construits sur des problèmes d'ingénierie proches de situations réelles, sur plusieurs écosystèmes pour enseigner l'architecture indépendamment du langage.

Python · TypeScript · Node.js · React · architecture logicielle · tests automatisés

IA engineering : des agents tenus par des garde-fous exécutables

Le développement augmenté par LLM, industrialisé : ce que l'agent doit respecter est vérifié par la machine, pas confié à sa mémoire.

Harnais d'agentsClaude Code
Codex · Gemini

  • Un harnais versionné dans le dépôt : 17 règles d'architecture et de qualité, 12 skills, 4 agents spécialisés (diagnostic sur données de production, tri des tests instables, sondage du contrat d'une API tierce, exécution des tests) et 9 hooks qui rendent le processus exécutable.
  • Le test qui échoue précède le code, les scénarios validés deviennent intouchables, et chaque tranche passe une revue adverse par plusieurs modèles avant fusion.
  • Garde-fous sur le code généré : tests d'architecture à seuils qui ne peuvent que baisser, blocage des requêtes non bornées, journal des tests instables tiré de l'API de la CI (582 jobs analysés), audit de 167 pipelines.
  • Le LLM comme brique produit : des jugements typés et probabilisés plutôt que du texte libre, des pipelines d'agents planifiés, des skills publiés en plugin Claude Code.
Temps pour donner le schéma de la base à un agent, échelle logarithmique exploration libre · 155 s pg_dump · 40 s export Hibernate · 1,4 s même export en cache · 0,08 s 0,010,11101001 000 s
FIG. 5Le contexte se mesure : quatre des six façons de donner le schéma de la base aux agents, échelle logarithmique. L'exploration libre, en pointillés, n'est pas déterministe.

Open source

Des bibliothèques publiées, dont chaque garantie est couverte par un test nommé.

Python · PyPISQLAlchemy · pytest

seedgraph

Remplit une base de test avec un graphe d'objets SQLAlchemy cohérent en un seul appel (« 3 utilisateurs, 2 articles chacun, 3 commentaires par article »), puis vérifie chaque clé étrangère contre la ligne visée. Valeurs réalistes et reproductibles, unicité respectée face aux lignes existantes, intégration pytest sans configuration, mode async ; testé sur SQLite et PostgreSQL.

pypi.org/project/seedgraph

Python · PyPIbibliothèque et CLI

tabcustody

Avec les modèles tabulaires en contexte (TabPFN, TabICL, TabDPT), le fichier du modèle contient les données d'entraînement. tabcustody le prouve sans exécuter le fichier : analyse des pickle, joblib et archives, code de sortie utilisable comme porte de CI, rapport JSON.

pypi.org/project/tabcustody

Lignes d'entraînement retrouvées dans le fichier du modèle modèles en contexte · 300 / 300 XGBoost · 0 / 300
FIG. 6Mesuré avant d'écrire la bibliothèque : 300 lignes d'entraînement sur 300 retrouvées dans chacun des quatre modèles testés, aucune pour XGBoost.

Extension & CLILLM à jugements typés

cgu-checklist

Une extension de navigateur et une CLI qui lisent des conditions générales et en tirent une check-list, chaque point justifié par la clause exacte, via un modèle qui rend des jugements typés et probabilisés.

Gosans dépendance

grab

Gestionnaire de téléchargements : morceaux téléchargés en parallèle, pause et reprise exacte après coupure, flux vidéo HLS, extension Chrome.

Plugin Claude Codedocumentation

claude-skills

Un skill de documentation de base de code dont chaque affirmation est vérifiée dans le code, avec ses règles d'écriture.

Compétences, certifications, formation

Architecture
DDD, architecture hexagonale, Clean Architecture, monolithe modulaire, conception d'API
Backend
TypeScript/Node.js, Python, Kotlin/JVM, Go, FastAPI, Django, Spring Boot
Serverless
Firebase Cloud Functions v2, Firestore, Firebase Auth & Hosting, Google Cloud Secret Manager
Données & messagerie
PostgreSQL, PostGIS, SQL, SQLAlchemy, Hibernate/JPA, Apache Kafka, pandas, traitement asynchrone
Performance & fiabilité
Concurrence, Java Virtual Threads, verrous optimistes et distribués, observabilité, disjoncteurs
Tests & qualité
TDD, BDD, tests d'architecture, tests de mutation, Pytest, JUnit, Playwright, Testcontainers, ArchUnit
Frontend
Next.js, React, HTMX, Tailwind CSS, ECharts, MapLibre
DevOps & cloud
Docker, GitLab CI/CD, GitHub Actions, Linux, Cloudflare, AWS (EC2, Lambda, S3, RDS, IAM, API Gateway)
IA
Claude Code, Codex, Gemini, MCP, agents, skills, hooks, scikit-learn, spaCy
Certifications
Langage Python, Éditions ENI, RS6701 (2026) · Tosa Python 3, 913/1000, niveau Expert (2024) · PCAP, Python Institute (2023) · PCEP, Python Institute (2023) · AWS Certified Developer – Associate, en préparation
Formation
Licence Sciences Physiques et DUT Mesures Physiques, Université de Lille
Langues
Français, langue maternelle · Anglais professionnel, à l'aise à l'écrit comme à l'oral

Derniers articles

Un backend à concevoir, à fiabiliser ou à faire monter en charge ?

e-mail
rachid.jeffali@gmail.com
téléphone
+33 7 56 88 61 64
LinkedIn
rachid-jeffali-python-dev
GitHub
jrachid
CV
CV-Rachid-Jeffali-2026.pdf