Projects
Things that shipped
Darija datasets, voice fraud pipelines, chatbots, and other systems that actually ran.
The Darija TTS Model Hunt: Failures, False Starts, and a Working Voice
Three text-to-speech experiments, 20.73 hours of synthetic speech, and a working OmniVoice model: lessons in model selection, evaluation, and training on rented GPUs.
What I Would Teach Differently About Machine Learning Today
I reopened an ML/DL course I designed and taught at EMSI. Most of the mathematics survived. My idea of where the hard engineering lives changed considerably.
Getting More Work Out of One H100
Lessons from reducing a multi-model production AI batch pipeline's runtime by 75% on a single H100, covering profiling, I/O, batching, CPU/GPU overlap, model scheduling, caching, backpressure, precision and resilient batch execution.
From Speaker Matching to System Design: Building a Production-Scale Voice Pipeline
What started as a small experiment matching voices across a handful of calls became a local pipeline that backfills tens of thousands of recordings and runs daily, where the hard part stopped being the model and became the system.
How We Expanded DODa to 500K Darija Examples
Darija is inconvenient for NLP: two scripts, flexible spelling, heavy borrowing. DODa’s latest expansion turns that inconvenience into a controlled 500K-row training corpus.
Teaching TranslateGemma Moroccan Darija: What Worked, What Broke, and What 32.8 BLEU Actually Means
Fine-tuning TranslateGemma 4B for Arabic-script Darija and Arabizi, moving the run between GPU clouds late in training, and figuring out whether 32.82 BLEU was actually good.
Darija libraries
Python libraries for Darija ⇆ English: word distance, translation lookup, and an LLM-assisted translator that does not pretend Darija is just messy Arabic.
Darija Open Dataset
The largest open collaborative dataset for Moroccan Darija ⇆ English, built for NLP, now past 500,000 semantic rows, in both Arabic and Latin script.
WhatsApp and Messenger chatbots
Business chatbots on WhatsApp and Messenger that talk to a real backend: Dialogflow, Twilio, Flask, Firebase.
Guides
Longer paths through a problem
Multi-part writeups that walk a system from the first constraints to the operational details.
Series
5 chapters · 3 March 2026 – 31 March 2026
AI System Design
A reference design for an assistant platform, followed from product guarantees through knowledge, durable execution, load, and controlled change.
Series
5 chapters · 31 October 2021 – 9 September 2022
Alexa Skills with Python
A five-part path from Alexa concepts to a working Rock-Paper-Scissors skill, then APL, multilingual support, and monetization, all in Python.
