Abwab.ai
Head of Machine LearningI lead machine learning at Abwab.ai. My recent work includes leading ML development for Kafalah, a Saudi government program that helps small and medium businesses get loans.

Head of Machine Learning at Abwab.ai.
Previously: founding ML engineer at Ntropy, ML engineer at Ubisoft, and contributor to the first generation of NVIDIA DLSS.
I also teach deep learning at EPITA. My open source contributions include Hugging Face projects, Guidance (originally Microsoft) and MySQL.
I lead machine learning at Abwab.ai. My recent work includes leading ML development for Kafalah, a Saudi government program that helps small and medium businesses get loans.
Helped build the initial transaction enrichment pipeline: extracting names and businesses from bank transactions in multiple languages, then categorizing those transactions.
Worked on semantic search and automated moderation of in game text, and deployed ML services in production. Created rust-sbert, a Rust port of Sentence Transformers, and contributed to Sentence Transformers and rust-bert.
Contributed to the first generation of DLSS, NVIDIA’s AI image upscaling technology for games, and its integration into Unreal Engine 4.
About NVIDIA DLSSTriplet losses in Sentence Transformers; inference fixes in Lighteval.
Sentence TransformersLightevalGPU device handling and prompt debugging in Guidance, originally a Microsoft project.
Guidance contributionsBERT and RoBERTa pooling in rust-bert; author of rust-sbert.
rust-bert contributionrust-sbertFrom building a first neural network to implementing an image generation model. My course combines practical work in PyTorch with the habits needed to read and question current research.
Build and train networks, understand losses, and experiment with optimization.
Explore the practicalUnderstand convolution, build CNNs and improve their performance on image tasks.
Explore the practicalImplement a DDPM, from adding noise to a U-Net that learns to remove it.
Explore the practicalIdentify assumptions, inspect experiments and decide whether a paper is useful.
Explore the practical
A loss function for noisy labels and better model calibration.
Read the article
Using an external knowledge base to improve and update an NER model.
Read the article
Training one transaction enrichment model across multiple languages.
Read the articleMy eclipse guides for 2026 and 2027: city timings, maps and a 3D viewing simulator, in English, French and Spanish.
These days I’m into building speakers, making music, playing badminton, building a mechanical watch, 3D printing with a Bambu Lab P2S, and experimenting with ways to orchestrate AI agents.