Disponibilité: Ouvert aux opportunitésNouakchott, Mauritanie
Bechir Mady
Étudiant à SupNum, je suis ingénieur logiciel et data, passionné par la conception de systèmes intelligents capables de résoudre des problèmes concrets. Je travaille à la croisée du développement logiciel, de l’ingénierie des données et du machine learning — de la conception d’applications et d’API évolutives à la construction de pipelines de données, d’architectures lakehouse et de solutions basées sur l’intelligence artificielle.
Introduction
Aperçu.
Je suis ingénieur logiciel et data, spécialisé dans la transformation de problèmes complexes en solutions simples, fiables et intelligentes. Je travaille à la croisée du développement logiciel, de l’ingénierie des données et de l’IA, en concevant des systèmes qui connectent applications, données et machine learning pour répondre à des problématiques concrètes.

IngénieurData

Ingénieur MachineLearning

Développeur Logiciel
Projets / 11 projets dans 5 catégories
Projets.
Chaque catégorie regroupe les projets qui partagent une même façon de travailler. Ouvrez-en une pour voir les projets, ce qu'ils mesurent et leur code.
Data Engineering02 projets
Pipeline hybride streaming et batch sur une architecture Medallion (Bronze / Silver / Gold), avec détection de fraude en temps réel.
Trois requêtes Spark Structured Streaming consomment un flux Kafka et écrivent en Delta Lake sur MinIO, pendant que quatre règles de fraude s'évaluent sur des fenêtres glissantes de 60 s. La couche dbt est testée, pas supposée, et tout démarre par un seul `docker compose up`.
Spark Structured Streaming · Delta Lake · Redpanda / Kafka · MinIO (S3) · dbt · DuckDB · Airflow · Docker
Chaîne de traitement
- Redpanda
- Spark Streaming
- Delta Lake
- dbt
- DuckDB
- Débit
- ~25 év/s
- Tests
- 30 + 52
- Conteneurs
- 13
- 02
Rice Crop Yield — An Giang
ML géospatial · 2024Suivi de la phénologie du riz et estimation de productivité en province d'An Giang, au Vietnam.
Sentinel-1 pour le radar, qui traverse la couverture nuageuse de la mousson là où l'optique seule échoue, combiné à Landsat et à la météo, avec restitution décisionnelle sous Power BI.
Sentinel-1 · Landsat · Python · SQL · Power BI
Chaîne de traitement
- Sentinel-1
- Landsat
- Phénologie
- Modèle
- Power BI
- Capteurs
- S1 · Landsat
- Zone
- An Giang, VN
- Restitution
- Power BI
Machine Learning05 projets
- 03
MRU-Forecast
Séries temporelles · MLOps · 2026Prévision du taux de change USD/MRU et EUR/MRU à 1, 7 et 30 jours ouvrés — avec l'incertitude comme livrable principal.
La moitié difficile de la question n'est pas « quelle sera la valeur » mais « à quel point je me trompe probablement ». Les intervalles sont produits par conformal prediction et leur couverture est vérifiée sur un backtest, jamais postulée. Servi par une API FastAPI, suivi dans MLflow, avec un tableau de bord et une image Docker.
Python · Conformal Prediction · scikit-learn · MLflow · FastAPI · Docker
Chaîne de traitement
- Données marché
- Features
- Modèle
- Conformal
- API
- Horizons
- 1 / 7 / 30 j
- Couverture
- 90 % mesurés
- Paires
- USD · EUR
- 04
Multi-Modal RAG
LLM · Récupération · 2026Système de question-réponse sur des corpus hétérogènes — PDF natifs, pages scannées, tableurs — qui cite le passage exact derrière chaque affirmation.
L'effort porte sur ce qui décide qu'un RAG est utilisable en production plutôt qu'impressionnant en démo : ingestion préservant la structure (tableaux gardés atomiques, figures appariées à leurs légendes), récupération hybride dense et BM25 fusionnée par Reciprocal Rank Fusion puis reclassée par cross-encoder, marqueurs de citation résolus jusqu'au fichier et à la page — et les marqueurs fabriqués sont supprimés avant affichage.
PyMuPDF · Tesseract OCR · BGE embeddings · BM25 · Cross-encoder · MMR · Ollama
Chaîne de traitement
- PDF / OCR
- Découpage
- Dense + BM25
- RRF + rerank
- Réponse citée
- Récupération
- hybride + RRF
- Citations
- vérifiées
- Backends
- 3 au choix
- 05
Estimation du rendement rizicole
ML géospatial · Mémoire · 2026Prédiction du rendement (t/ha) de 102 parcelles irriguées du Trarza à partir d'imagerie Sentinel-2, de météo et d'observations de terrain.
L'archive Sentinel-2 livrée était tronquée : son index de fin manquant, `zipfile` la refusait. Un lecteur maison le reconstruit en parcourant les en-têtes locaux et récupère 99,88 % des octets sans jamais matérialiser les 14 Go sur disque.
Sentinel-2 · rasterio / GDAL · Pandas · scikit-learn · XGBoost · Jupyter
Chaîne de traitement
- Sentinel-2
- Masque parcelle
- Indices
- Météo + ET
- Rendement
- Scènes
- 11 799
- Parcelles
- 102 / 102
- Archive
- 99,88 % lus
Transposition du principe Skip-Gram à un problème NP-difficile d'optimisation combinatoire sur deux graphes couplés, issu de la bio-informatique. Soumis à I2COMSAPP'26.
Les embeddings s'entraînent sur le seul graphe orienté ; la connexité du second n'intervient qu'au décodage. Un décodeur naïf s'enlise dans les culs-de-sac du DAG, d'où une anticipation exacte — le plus long chemin restant, calculé par programmation dynamique en O(V+E) et combiné à la similarité d'embeddings. Écrit avec trois co-auteurs, sous la supervision de Dr. Mohamed Lemine Ahmed Sidi et Dr. Hafedh Mohamed Babou.
Skip-Gram / node2vec · Negative Sampling · Dynamic programming · Union-Find · NumPy
Chaîne de traitement
- Marches DAG
- Skip-Gram
- Décodage guidé
- Union-Find
- Chemin
- Solveur exact
- 28 s / instance
- Référence GNN
- 1,2 nœud
- Soumis à
- I2COMSAPP'26
Chaîne complète pour le marché immobilier mauritanien : collecte, modèle prédictif, API et interface cartographique.
Plus de 5 000 annonces extraites via l'API interne de Voursa.com, puis un feature engineering sérieux — target encoding, transformations log, interactions — avant XGBoost et LightGBM. Le modèle est exposé par FastAPI et consommé par un front Next.js 15 avec cartographie Leaflet et visualisations Recharts.
BeautifulSoup · XGBoost · LightGBM · FastAPI · Next.js 15 · Leaflet · Recharts
Chaîne de traitement
- Scraping
- Feature eng.
- XGB / LGBM
- FastAPI
- Carte
- Annonces
- 5 000+
- Modèles
- XGB · LGBM
- Surface
- scrape → carte
Web01 projet
Plateforme de demande de visa en ligne — formulaires multi-étapes, persistance relationnelle et interface multilingue.
Next.js App Router avec Prisma sur PostgreSQL, internationalisation complète par next-i18next, et un parcours de demande découpé en étapes qui survit à un rafraîchissement de page.
Next.js · TypeScript · Prisma · PostgreSQL · next-i18next
Chaîne de traitement
- Formulaire
- Validation
- Prisma
- PostgreSQL
- Dossier
- Langues
- AR · FR · EN
- ORM
- Prisma
- Rendu
- App Router
Mobile02 projets
Application anti-gaspillage alimentaire : les clients récupèrent des paniers surprises à prix réduit chez des commerçants partenaires.
Deux parcours dans un seul binaire — douze routes client et neuf routes commerçant — sur une architecture par feature avec Riverpod et Dio. La connexion renvoie un access token de 24 h et un refresh token de 7 jours, et un intercepteur renouvelle le premier silencieusement sur un 401 : la session n'est pas perdue chaque jour.
Flutter · Riverpod · go_router · Dio · Freezed · Material 3
Chaîne de traitement
- Panier publié
- Commande
- Code de retrait
- Validation
- Avis
- Routes
- 24
- Parcours
- 2
- Flavors
- 3
Met en relation vendeurs de déchets recyclables, acheteurs et recycleurs à Nouakchott, de l'annonce publiée jusqu'au contact téléphonique entre les deux parties.
Sortie de FlutterFlow : le code exporté a été supprimé ou redistribué, et plus rien dans la couche données ne dépend de Supabase ou de Firestore. Les notifications passent par un WebSocket STOMP avec repli sur FCM, et un contrôle de version monté au-dessus du Navigator bloque une version antérieure au minimum exigé par le backend — y compris sur une route ouverte par lien profond.
Flutter · go_router · STOMP WebSocket · Firebase Cloud Messaging · Spring Boot
Chaîne de traitement
- Annonce
- Offre
- Négociation
- Acceptation
- Mise en relation
- Langues
- FR · AR · EN
- Lint
- 0 issue
- Version
- 1.0.1+6
Computer Vision01 projet
Pilotage du pointeur système à la main nue : un flux webcam entre, des mouvements, clics, glissers et défilements réels sortent.
Construit comme un vrai pilote d'entrée plutôt que comme un script de tutoriel : perception isolée du fournisseur, gestes en géométrie pure, machine à états explicite, backend OS interchangeable. Le tremblement qui rend la plupart des démos inutilisables est éliminé par lissage.
MediaPipe Hands · OpenCV · Python · pytest · mypy
Chaîne de traitement
- Webcam
- MediaPipe
- Géométrie
- Machine à états
- Pointeur OS
- Cadence
- plein FPS
- Typage
- mypy strict
- Lint
- ruff
Stack / 42 outils
Stack technique
Parcours / 3 jalons
Ce qui m'a amené jusqu'ici.
Baccalauréat
Baccalauréat national — Mauritanie
- Le diplôme de fin d'études secondaires qui a ouvert la voie vers l'informatique.
Licence, Développement des Systèmes Informatiques
Institut Supérieur du Numérique (SupNum), Nouakchott
- Programmation, bases de données, réseaux et développement web, jusqu'à la conception d'applications complètes.
- Trois années qui ont transformé un goût pour le code en manière de construire des logiciels.
Master, Data Engineering & Machine Learning
Institut Supérieur du Numérique (SupNum), Nouakchott
- Big Data, apprentissage automatique, architectures distribuées et traitement du langage.
- La plupart des projets de ce portfolio sont nés pendant ce cursus.
Ouvert aux opportunités