Ayoub Hammoudi
Ayoub Hammoudi
Ingénieur logiciel, full-stack et plateformes IA
Je construis des systèmes data et LLM de bout en bout, et mes correctifs entrent dans le code d'Apache et de Microsoft.
Disponible en CDI à partir de février 2027. Paris, mobile en Europe.
ayoub.hammoudi05@gmail.com · GitHub · LinkedIn
Tout le site en texte brut : expérience, projets, pull requests fusionnées, formation. Chaque chiffre renvoie à sa source.
Départs
Taintrace: Criblage de sanctions Bitcoin qui suit l'argent au-delà de la liste
Démo en direct · juin 2026 - juil. 2026 · Seul
Une adresse absente de toute liste a reçu 512,25 BTC. Trois sauts en arrière, 11,07 % venaient d'un portefeuille sanctionné.
Listes OFAC et OpenSanctions ingérées par Airflow sans écriture disque, transactions criblées en direct via WebSocket et Kafka, contamination propagée dans un graphe Neo4j selon la règle du haircut sur n sauts.
Stack: Python, Airflow, Kafka, MongoDB, Neo4j, Docker Compose. Code
Aftershock: Un data lake temps réel qui regarde les magnitudes de séismes se réviser
Démo en direct · juil. 2026 - août 2026 · Seul
7 939 versions archivées de 2 128 séismes. L'un, publié d'abord à 3,6, a été révisé à 5,2.
Trois sources USGS vers un lac Bronze, Silver et Gold sur HDFS : Kafka en mode KRaft, Spark Structured Streaming avec Delta Lake, quatre DAG Airflow chaînés par Datasets, rejeu après arrêt brutal prouvé sans doublon.
- 7,939, versions de magnitude archivées (Source: committed data bundle, generated 27 Aug 2026)
- +1.60, plus grande révision de magnitude (Source: committed data bundle, generated 27 Aug 2026)
- 1,151, séismes qui changent d'identifiant entre versions (Source: committed data bundle, generated 27 Aug 2026)
- 0.83, ROC AUC, faut-il croire la première magnitude (Source: Spark MLlib GBT classifier, notebook output)
Stack: Kafka, Spark Structured Streaming, Delta Lake, Airflow, HDFS, Spark MLlib. Code
Nucleus: Un moteur de chimie en Rust compilé en WebAssembly, qui tourne dans votre navigateur
Tourne ici · juil. 2026 - juil. 2026 · Seul
31,7 Ko de WebAssembly criblent 13 577 molécules EGFR par similarité de Tanimoto, ici, sur votre machine.
Données EGFR de ChEMBL, empreintes de Morgan et criblage Tanimoto dans une crate Rust avec repli JavaScript, comparée à elle-même en direct. Partie d'AI for Molecular Design, avec des notebooks RDKit derrière.
Stack: Rust, WebAssembly, TypeScript, Next.js, RDKit, ChEMBL. Code En ligne
Phantera: Une plateforme d'outbound LLM, construite seul, avant son premier client
Avant lancement · janv. 2026 - oct. 2026 · Seul
Des pipelines durables qui n'envoient jamais deux fois, une facturation à l'usage, et une garde qui lit chaque réponse pour y chercher une injection de prompt, en anglais et en français.
Next.js et TypeScript sur PostgreSQL. Orchestration Inngest dédupliquée par clé d'événement dans Redis, facturation Stripe à l'usage, harnais d'évaluation en CI qui mesure F1 et exactitude sur un jeu doré. Avant lancement, aucun client à ce jour.
- 16, motifs d'injection de prompt, anglais et français (Source: lib/security/prompt-guard.ts, dépôt privé, non vérifiable publiquement)
- 12, réponses dorées évaluées en CI (Source: evaluation golden set, dépôt privé, non vérifiable publiquement)
Stack: Next.js, TypeScript, PostgreSQL, Prisma, Inngest, Redis, Stripe. En ligne
Arrivées: fusionnées en amont
- apache/kafka#23786 (13 oct. 2026, +0 -3): Dépendances de test en double, retirées avec un graphe de dépendances prouvé identique.
- microsoft/agent-framework#9139 (13 oct. 2026, +78 -3): Les appels Gemini en streaming perdaient le nom du modèle, les métriques de tokens n'appartenaient à aucun.
- microsoft/PyRIT#3075 (11 oct. 2026, +38 -0): Deux scorers aux réglages différents partageaient une identité, les résultats en cache se croisaient.
- microsoft/PyRIT#3014 (9 oct. 2026, +71 -1): Les catégories de score sortaient déformées dans l'affichage.
- apache/beam#40430 (6 oct. 2026, +0 -1): Un log de débogage imprimé en production pendant cinq ans, retiré.
- tobymao/sqlglot#8519 (5 oct. 2026, +3 -1): La sortie DuckDB perdait la graine de UNIFORM, toutes les graines donnaient le même SQL.
- PrefectHQ/prefect#23281 (5 oct. 2026, +16 -0): Le nom de bot Mattermost configuré était ignoré sans erreur.
Proposées, en revue
Parcours
- Développeur full-stack, E-KIGAI (Freelance, sept. 2026 - aujourd'hui, À distance)
- Fondateur et ingénieur logiciel, Phantera (Fondateur, janv. 2026 - aujourd'hui, Paris). Plateforme d'outbound LLM construite seul, avant lancement.
- Ingénieur full-stack, FCT (Freelance, mai 2026 - sept. 2026, À distance). Refonte SEO et AEO sur Next.js 15, React 19 et TypeScript. Chaque build conditionné à des budgets Lighthouse CI sur 9 pages, plus des specs Playwright.
- Développeur full-stack, alternance, Cash Flow Positif (Alternance, janv. 2026 - août 2026, Paris). Robots de scraping et agents IA sur 51 sources immobilières via Kafka. Conception du Scheduler Command en microservices Fastify et TypeScript, équilibré par quotas par source. Docker, Grafana, Loki.
- Ingénieur full-stack, FirstDown Tech (Freelance, déc. 2025 - févr. 2026, À distance). Livraison de bout en bout du site de FirstDown Tech sur Next.js 15 App Router, TypeScript strict et Tailwind CSS v4, avec JSON-LD pour les moteurs de réponse.
- Développeur full-stack, stage, Cash Flow Positif (Stage, août 2025 - janv. 2026, Paris). Microservices Fastify et TypeScript et front React sur la plateforme immobilière CFP Hub.
- Développeur full-stack, SweetcHome (Freelance, juin 2024 - nov. 2024, Dubaï, à distance). Algorithme de rapprochement biens et clients et prédiction de prix sur des annonces collectées. Un classifieur d'images CNN servi par une API Flask.
- Ingénieur logiciel, stage, Elyadata (Stage, juin 2023 - sept. 2023, Tunis). Générateur de CV sur Angular, Spring Boot, LaTeX, Kafka et Docker.
- Ingénieur logiciel, stage, Elyadata (Stage, juin 2022 - juil. 2022, Tunis). Service d'authentification Keycloak sur Spring Cloud derrière une API gateway.
Formation
- IPSSI, Paris: Mastère Développement IA et Big Data (févr. 2026 - mars 2027)
- ESPRIT, Tunis: Diplôme d'ingénieur, génie logiciel (sept. 2019 - juin 2025)
Langues
- Arabe, langue maternelle
- Français, courant professionnel
- Anglais, courant professionnel