I am a final-year engineering student at ESEO (Bac+5), specialised in Data Science and Artificial Intelligence. I am currently completing my end-of-study internship in the R&D department at Aubay, where I work on applied AI research projects.
I am actively looking for my first permanent position (CDI) as a Data Scientist or ML Engineer, as well as a PhD thesis in Artificial Intelligence.
End-to-end Retrieval-Augmented Generation (RAG) application that lets users query scientific literature using natural language. The system automatically crawls and indexes ArXiv papers by topic, then answers questions grounded in the retrieved documents.
Built a FastAPI backend with an async task queue (TaskIQ + Redis) for non-blocking PDF ingestion, a Qdrant vector database for semantic search, and Ollama for fully offline local LLM inference with streaming responses. Delivered a Streamlit chat UI with real-time token streaming and persistent conversation history. Orchestrated all services with Docker Compose and CI via GitHub Actions.
check the projectEnd-to-end local data platform built on a medallion architecture (Bronze / Silver / Gold) to ingest, transform, and visualize child mortality data from Our World in Data (16,835 rows across 200+ countries).
Designed a MinIO data lake for raw CSV storage, a PostgreSQL data warehouse with staging and gold schemas, and three analytical models built with dbt (mortality by country, trend by decade, top 10 most improved countries). Wrote 14 dbt data quality tests (not_null, unique) on sources and gold models. Orchestrated the full pipeline Bronze → Silver → Gold → Test with an Airflow DAG, packaged in a custom Docker image. Connected Metabase to the gold schema for interactive dashboards.
check the projectTrained a ConvNeXt-Tiny regression model on the UTKFace dataset to predict age from face photos, achieving MAE = 4.49 years on the test set. Automated hyperparameter search (learning rate, batch size, weight decay) with Optuna over 15 trials and tracked experiments with TensorBoard.
Built a FastAPI backend with face detection (OpenCV Haar cascade), Monte Carlo Dropout for 95% confidence intervals, and structured logging. Developed a React frontend displaying the detected face crop, predicted age, and confidence range. Wrote 17 pytest tests with CI on GitHub Actions and containerized the full stack with Docker Compose and GPU support.
check the projectDesigned and implemented a custom CNN architecture using PyTorch for multi-class brain tumor classification from MRI images, distinguishing between glioma, meningioma, pituitary tumors, and healthy cases.
Following 15 training epochs, the model achieved:
Overall Accuracy: 93.55% |
F1-Score: 93.46%
Recall for glioma tumors: 97.13%
Recall for pituitary tumors: 94.61%
Precision for no tumor: 93.24%
Developed a deep learning model for automatic image captioning using a CNN-RNN architecture with TensorFlow. Implemented data preprocessing, tokenization, and metric evaluation pipelines in Python.
Trained on 20% of the COCO dataset for 20 epochs:
CIDEr score: 0.433 |
BLEU-4 score: 0.153
Focused on the interpretability of computer vision models using Grad-CAM (Gradient-weighted Class Activation Mapping). Applied it to two distinct tasks to visualise where models focus their attention:
This work enhances the trustworthiness of complex deep learning systems.
check the projectCompared five strategies for mitigating catastrophic forgetting when sequentially fine-tuning Qwen2-0.5B on quarterly batches of ArXiv abstracts (cs.LG + cs.CL, 2024). Implemented Naive, EWC, LoRA + Replay, and Orthogonal LoRA (O-LoRA) from scratch using PyTorch and HuggingFace.
Perplexity on batch_01 after 4 sequential training steps:
Naive: 5.14 |
LoRA + Replay: 3.66 |
O-LoRA: 3.70
Full-stack data analytics web app that fetches, stores, and visualizes Chess.com game history for any player. Built an ETL pipeline in Python to extract data from the Chess.com public REST API, normalize it with pandas, and persist it in SQLite with incremental ingestion and deduplication.
Delivered an interactive Streamlit dashboard showing rating trends, opening performance, win/loss rates, and opponent strength across game modes (Blitz, Bullet, Rapid). Containerized with Docker Compose, covered with pytest unit tests, and deployed via a GitHub Actions CI/CD pipeline.
check the projectOpen to opportunities - feel free to reach out!