I'm Ismail, an AI engineer and researcher based in Paris, France 🇫🇷 (originally from Fès, Morocco 🇲🇦) ![]()
I learn by building. I reimplement papers from scratch (vision transformers, GPTs, an autograd engine, voice-conversion models) so I understand how they work instead of just calling an API. I turn that understanding into practical AI systems: document extraction, agent evaluation, real-time audio, and independent products such as Qlaver, Kinetra and Glitch.
Graduate of École Centrale de Lyon (Master’s in Artificial Intelligence) and ENSA Fès (Computer Science Engineering degree, top of the class)
Focused on agentic AI, multilingual RAG and LLM evaluation in production
Exploring multimodal learning (vision + language) and real-time generative audio
Motto: build it from scratch first, reach for the library second.
Explore my tech stack in 3D → click a technology to see the projects and jobs I used it in.
Languages
AI / Machine Learning
Vector DBs, MLOps & Experiment Tracking
Backend, Cloud & DevOps
Frontend & Mobile
| Role | Period | Highlights |
|---|---|---|
| Data & AI Engineer | Jun 2026 – Present | Data and AI pipelines on GCP at Dailymotion: Gemini-powered enrichment with Google Search grounding, BigQuery-to-Qdrant multilingual retrieval with LLM reranking, LangSmith evaluation on human-reviewed golden datasets, and an MCP-based Alert Agent that investigates data-platform incidents from Slack. |
| AI Engineer | Sep 2025 – Jun 2026 | Designed a human-in-the-loop feedback loop that keeps adapting document-extraction agents to each client (about +18% accuracy), and built an agent-evaluation framework with 10+ metrics so improvements to the extraction pipeline can be measured. |
| AI Engineer Intern (MSc thesis) | Apr 2025 – Sep 2025 | Built a real-time neural voice-conversion system under live-latency constraints. Added multi-voice mixing with LLVC and improved StreamVC quality and efficiency. Trained on multiple GPUs with distributed training. |
| AI Intern | Jan 2024 – Jul 2024 | Built and deployed a legal-document RAG system (FastAPI, LlamaIndex, PostgreSQL, Qdrant) with cross-encoder re-ranking, multilingual support, and hybrid keyword / vector / metadata search behind a Next.js UI. |
| ML & CV Intern | 2023 | Fine-tuned GPT-2 to answer questions about scientific articles. Built YOLO and SegNet models for autonomous-vehicle perception and deployed them to FPGA with Vivado. |
| ML Intern | Jun 2023 – Jul 2023 | Built ML models that predict mortgage prepayment risk and deployed them with Flask. |
Products I build in my spare time, to take AI from a notebook to something people can use. These three are the ones I keep working on to make them ready for real users. They are private for now: I see real potential in them, so their code stays closed.
|
Agentic email assistant. It summarizes your inbox the way you like and sends you the summary as audio. FastAPI · React · ElevenLabs · AWS |
AI fitness companion. Guided workouts, a camera coach for your form, body measurements from a photo, and a supportive community. FastAPI · React Native (Expo) · MediaPipe · ONNX |
Android app against autopilot habits. Your apps in a new random order, so you look before you tap. No permissions, no internet, no tracking. Kotlin · Jetpack Compose |
| Degree | School | Period |
|---|---|---|
| MSc, Artificial Intelligence Research | École Centrale de Lyon, France 🇫🇷 | 2024 – 2025 |
| Computer Science Engineering Degree | National School of Applied Sciences (ENSA), Fès, Morocco 🇲🇦 | 2019 – 2024 |
| Project | Description | Stack |
|---|---|---|
| Controlled comparison of Transformer, LSTM and RNN models for symbolic music generation. | PyTorch · Keras · Streamlit | |
| 🔧 MyTorcha | Minimal deep learning framework with DAG-based autograd, written in pure Python. | Python · NumPy |
| 📐 cadquery-agent | Local text/image agent that runs on open-weight models and generates validated CadQuery CAD code. | Python · LLMs |
| 📐 tiny-img2cad | Image-to-CadQuery model: a ResNet18 encoder and a Transformer decoder that write the code for a CAD part from its picture. | PyTorch |
| 👁️ vit-image-classifier | Vision Transformer written from scratch: attention heatmaps, Streamlit demo, 86 tests, 97% on shapes and 86% on PlantVillage. | PyTorch · Streamlit |
| 🎯 yolo-object-detector | YOLOv1 from the paper: network, loss, NMS and mAP, trained on synthetic shapes, MNIST, PASCAL VOC and Mapillary traffic signs. | PyTorch |
| 🧩 segnet-semantic-segmentation | SegNet semantic segmentation on toy shapes, Oxford-IIIT Pet and Mapillary Vistas, with tests and a Kaggle/Colab notebook. | PyTorch |
| 🖼️ text2image | Twelve text-to-image architectures (SD U-Net, DiT, MMDiT, FLUX, SANA, MaskGIT, VAR, ...) trained and benchmarked side by side. | PyTorch |
| 🎨 imagegen | Image generation with GANs (DCGAN, SNGAN) and diffusion (DDPM/DDIM U-Net) on MNIST, CIFAR-10 and AFHQ. | PyTorch |
| 🎙️ stt-workbench | Speech-to-text workbench: CTC, LAS, hybrid CTC/attention, RNN-Transducer and wav2vec2/Whisper fine-tuning, with WER/CER evaluation. | PyTorch |
| 🔊 tts-workbench | Text-to-speech workbench: Tacotron 2, Transformer-TTS, FastSpeech 2, VITS and a HiFi-GAN vocoder, with MCD/F0/MOS evaluation. | PyTorch |
| 🧑💼 hr-jev | One GPT-2, written from scratch, predicts four HR outcomes (attrition, job level, satisfaction, income) from a plain-words employee description. | PyTorch · Gradio |
| 💬 text-classification | Emotion classification with RNN, LSTM and GRU built with nn.* and from scratch; 12 models at 91-92% test accuracy. | PyTorch |
| 🕹️ cartpole-rl · lunarlander-rl · pong-rl | Every RL family (tabular, DQN variants, REINFORCE, A2C, PPO, SAC, pixel CNN policies) compared on one environment each, with before/after GIFs and curves. | PyTorch · Gymnasium |
| 🏔️ mountaincar-rl · pendulum-rl · frozenlake-rl | Sparse-reward, continuous-control and classical tabular RL (value/policy iteration, SARSA, Q-learning, Dyna-Q, DDPG/TD3/SAC) with heatmaps and exact-optimum checks. | PyTorch · Gymnasium |
| 🧪 gan-workbench | Ten GAN variants (GAN to WGAN-GP, SNGAN, pix2pix, CycleGAN) on one training loop with FID/IS/IoU evaluation and training-progress GIFs. | PyTorch |
| 🌫️ diffusion-workbench | Diffusion and flow models (DDPM, DDIM, v/x0-prediction, score SDE, flow matching, EDM) with U-Net and DiT backbones, FID vs NFE. | PyTorch |
| 🩻 unet-image-segmentation | U-Net with every architectural switch made explicit (skips, residual blocks, strided vs pooled), six variants scored with IoU/Dice on shapes and Oxford-IIIT Pet. | PyTorch |
| 😮 speech-emotion-recognition | Eight audio classifiers (WavLM, CRNN, CNNs, MLP, SVM) on RAVDESS, evaluated on unseen speakers; best 82.5% accuracy. | PyTorch · Hugging Face |
| 🔤 en_2_ar_translator | English-to-Arabic Transformer machine translation with shared BPE, beam search and BLEU/chrF evaluation. | PyTorch |
| 📨 naive_little_rag | A simple, readable RAG system that shows each step of retrieval-augmented generation. | Python · Vector search |
Here's a fun exchange I had with Tiny LLM (formerly MT-GPT), the GPT I built from scratch:
Top Graduate: 2024 Computer Science Engineering class, ENSA Fès
1st in Morocco · 121st worldwide: IEEEXtreme global coding competition
2nd place: IEEE R8 Entrepreneurship Initiative, with Equinox, a fitness app concept
I'm always happy to talk about deep learning, GenAI, research collaborations, or startup ideas.
All my links in one place: benisalla.github.io/my-link-in-bio









