Ingénieur data et IA · chercheur

Soheib BOUAZZAOUI

Je construis des pipelines de données et des modèles d'IA, et je mène une recherche en neurosciences computationnelles.

Voir mon travail Me contacter Disponible après mon diplôme, en septembre 2027
01Bio · master IA et Big Data, ESIEE-IT

Bio

J'ai toujours eu besoin de comprendre comment les choses marchent, et souvent je finis par les reconstruire depuis zéro pour y arriver. Mes études m'ont amené en master IA et Big Data à l'ESIEE-IT, mais l'IA n'est qu'une partie de ce qui m'intéresse. Il y a aussi les maths derrière les modèles, et la façon dont le vivant traite l'information : comment des mécanismes très simples finissent par produire des comportements complexes.

Je passe d'un domaine à l'autre : machine learning, neurosciences computationnelles, apprentissage par renforcement, robotique, systèmes embarqués. Ce que je préfère, ce sont les cas où la théorie et l'expérience ne disent pas la même chose, parce que c'est là que je teste mes hypothèses. Et quand une question m'intrigue, je la suis, même si elle m'emmène dans un domaine où je n'avais pas prévu d'aller.

Plus l'IA répond à notre place, plus je tiens à réfléchir par moi-même. Je l'utilise pour aller plus loin, mais une réponse ne m'apprend rien tant que je ne l'ai pas comprise.

Je ne sais pas encore sur quelles questions je vais travailler ces prochaines années, et c'est aussi pour ça que la recherche m'attire.

Je traverse le temps par variations infinitésimales, ignorant quelle courbe naîtra de l'intégrale de mes jours et quelles dimensions attendent encore mon premier élan.Je traverse le temps par variations infinitésimales,ignorant quelle courbe naîtra de l'intégrale de mes jourset quelles dimensions attendent encore mon premier élan.

02Recherche · prépublication, novembre 2026

Connectome

L'agencement des connexions d'un système nerveux aide-t-il à apprendre ?

J'ai converti la reconstruction MaleCNS v1.0 de Janelia, le système nerveux central complet d'une drosophile mâle, en un réseau de neurones impulsionnels branché sur un œil artificiel et huit actions. Je l'ai comparé à des copies recâblées qui conservent les neurones, les degrés, les signes et les poids, ainsi que la profondeur sensorimotrice et la latéralité ; seul l'agencement des connexions diffère.

170 000
neurones impulsionnels (environ)
80
copies recâblées servant de témoins
2
tâches visuelles apprises par récompense
55 h
de calcul GPU (environ)

Résultat principal Sur les deux tâches, le connectome apprend plus vite que chacun des graphes témoins de l'étude principale, de 6 à 11 écarts-types au-dessus de leur moyenne.

02Recherche · ce que j'étudie

Sujets

  • Câblage et vitesse d'apprentissage

    Un réseau qui reçoit l'organisation mesurée d'un vrai système nerveux apprend-il mieux qu'un réseau de mêmes dimensions dont les connexions ont été redistribuées ?

  • Des modèles nuls fidèles

    Les témoins conservent la profondeur sensorimotrice et la latéralité. Un recâblage naïf créerait des raccourcis directs entre les entrées sensorielles et les muscles, ce qui fausserait la comparaison.

  • Apprendre avec une règle locale

    Une règle à trois facteurs modifie les connexions vers les neurones de sortie. Elle combine l'activité des deux neurones reliés et un signal de récompense.

  • Super Mario Bros.

    Au départ, je voulais savoir si un connectome de drosophile pouvait apprendre à jouer à Super Mario Bros. Le jeu sert aujourd'hui de contrôle, et le connectome FlyWire 783 sert à répliquer les résultats.

Les protocoles sont fixés avant de voir les données, chaque résultat a son empreinte SHA-256, et make figures régénère toutes les figures.

03IA · modèles

IA

  • nanoGPT en NumPy

    Un GPT au niveau caractère écrit uniquement avec NumPy, sans PyTorch ni différentiation automatique. J'ai dérivé chaque rétropropagation à la main, puis je les ai vérifiées par différences finies. Entraîné 25 minutes sur deux cœurs de processeur avec le texte des Misérables, il atteint 2,45 bits par caractère, 29 % de moins qu'un modèle bigramme.

    • Python
    • NumPy
    • Transformer
    • Cache KV
    • pytest
  • Graphes de citations en PyTorch

    Un réseau de neurones sur graphe classe 169 000 articles d'informatique d'arXiv dans 40 catégories, à partir de leur résumé et des 1,2 million de citations qui les relient. Pour mesurer l'apport des citations, je le compare à un MLP qui n'utilise que le texte, avec le protocole officiel de l'Open Graph Benchmark. L'expérience est en cours.

    • PyTorch
    • PyTorch Geometric
    • GCN
    • GraphSAGE
    • OGB
  • Consommation électrique à J+1

    Chaque jour à midi, un modèle LightGBM prévoit la consommation électrique française des 48 demi-heures du lendemain, à partir des données ouvertes de RTE et de prévisions météo archivées. Des tests vérifient qu'il n'utilise aucune donnée postérieure à midi. Sur 2025, année exclue de l'entraînement, son erreur moyenne est de 1,70 %, contre 2,67 % pour la prévision J-1 publiée par RTE. Une fois son biais corrigé, la prévision de RTE atteint le même niveau ; le README détaille cette comparaison.

    • Python
    • LightGBM
    • pandas
    • SHAP
    • Séries temporelles
    • Open data
03Big Data · pipelines

Big Data

  • Ventes immobilières, Spark contre DuckDB

    Les ventes immobilières publiées en open data (DVF, 20 millions de lignes sur cinq ans) passent par un pipeline en trois couches, bronze, silver et gold, que j'ai écrit deux fois : en PySpark et en DuckDB. Les deux versions produisent des tables identiques, et 49 contrôles qualité interrompent l'exécution dès qu'une couche présente une anomalie. Sur une seule machine, DuckDB traite l'ensemble en 4 min 14 s, contre 16 min 37 s pour Spark.

    • PySpark
    • DuckDB
    • SQL
    • Parquet
    • Qualité des données
  • Suivi des modifications de Wikipédia

    Les modifications de tous les wikis Wikimedia arrivent en continu dans Redpanda, compatible avec l'API de Kafka. Un moteur de fenêtrage que j'ai écrit en Python, sans Flink ni Spark, les agrège en temps d'événement et détecte les pics d'édition. Sur un essai de 32 minutes, il a traité 61 événements par seconde avec une latence médiane de 1,1 s. Après deux arrêts brutaux de la machine, aucun événement n'avait été perdu ni compté deux fois.

    • Python
    • Redpanda / Kafka
    • Parquet
    • DuckDB
    • Docker
04Open source · Linux · MIT

ScreenPad

Piloter le second écran des ZenBook depuis Linux.

Une application pour la zone de notification qui règle la luminosité du ScreenPad Plus, l'allume et l'éteint. Elle fonctionne sous X11 et sous Wayland, sur Arch Linux et ses dérivées.

  • La luminosité passe par brightnessctl et logind, directement sur le pilote du noyau, sans droits root.
  • Avant l'extinction, la luminosité est enregistrée de façon atomique, puis restaurée au rallumage.
  • Une seule instance à la fois, un lancement automatique à la connexion et un widget QML pour la barre d'Omarchy.
  • Distribuée en paquet Arch et en releases GitHub, avec des tests automatisés.
  • Python
  • PySide6 / Qt
  • QML
  • Arch Linux
04Open source · AGPL-3.0

RetroSave

Synchronise les sauvegardes d'émulateurs entre Android, Windows et Linux, via un serveur auto-hébergé.

  • Avant chaque remplacement, une copie locale est conservée et l'écriture est atomique. En cas de conflit, les deux versions restent disponibles jusqu'à ce que le joueur choisisse.
  • Chaque version reste restaurable, et l'export produit des fichiers utilisables sans RetroSave.
  • Le moteur de synchronisation existe en C++ et en Kotlin, et des vecteurs de test communs vérifient que les deux se comportent de la même façon.
  • Neuf connecteurs : PPSSPP, melonDS, Azahar, Dolphin, DuckStation, PCSX2, mGBA, RetroArch, et un dernier pour n'importe quel dossier.
  • Installateur Windows, archive Linux, APK signé et guide d'auto-hébergement en HTTPS.
  • C++20
  • Qt 6 / QML
  • Kotlin
  • Jetpack Compose
  • FastAPI
  • PostgreSQL
05Produits · Android

Phantom

Une application pour sortir d'une addiction, avec un fantôme en pixel art pour compagnon.

  • Blocage DNS directement sur le téléphone, via VpnService.
  • Un compteur de jours et des points d'expérience, une aide au moment d'une envie, un journal et un coach IA.
  • Communauté sous pseudonyme, modérée côté serveur.
  • L'application fonctionne hors ligne avec Room et se synchronise avec Supabase, protégée par des règles RLS testées.
  • Kotlin
  • Jetpack Compose
  • Hilt
  • Room
  • Supabase
  • Edge Functions
05Produits · commercial, Wear OS

Arabic Dial

Noor, un cadran Wear OS personnalisable à chiffres arabes.

  • Six styles, huit palettes et trois formes d'aiguilles, à combiner comme on veut.
  • Deux complications au choix, une trotteuse optionnelle et un mode ambiant sur fond noir.
  • Un générateur Python produit le XML du Watch Face Format et toutes les images à partir d'une seule description du design.
  • Wear OS 4+
  • Watch Face Format
  • Python
  • Pillow
05Produits · SaaS B2B

LexVault

Le transfert de fichiers confidentiels pour les cabinets d'avocats.

  • Les fichiers sont chiffrés sur le poste de l'utilisateur, avant l'envoi.
  • Chaque transfert a ses contrôles de partage et son journal d'audit.
  • Une application web et une application de bureau en Electron.
  • Les emails d'invitation, de code à usage unique et de notification ont été testés en conditions réelles.
  • Next.js
  • TypeScript
  • Supabase
  • Cloudflare R2
  • Electron
06Expérience · data et intégrations

SOS Médecins

Données, intégrations et outils internes.

  • Pipelines de données en production.
  • Intégration entre Doctolib et Sobek par automatisation du navigateur.
  • Outils de téléphonie connectés à Genesys, en C# et ASP.NET.
  • Maintenance d'applications Classic ASP.
  • Python
  • Data engineering
  • C#
  • ASP.NET
  • Classic ASP
07Contact

Écrivez-moi

Je cherche un poste en data engineering, en IA ou en recherche, à partir de septembre 2027.