Recent work

Magma Core

Jun 2026 – Aug 2026

LFX Mentorship at The Linux Foundation (Cloud/4G/LTE)

In this mentorship I worked on making Magma easier to deploy on a local machine with Minikube. The orc8r and lte-orc8r Helm charts still used old Kubernetes APIs, so helm install failed on Kubernetes 1.25 and newer. I updated the API versions in the charts to fix it.

I also updated the Minikube guide. I fixed the Kubernetes version and wrote down the problems I hit on the way, like the fluentd gem and the cert ownership, with their fixes. Then I added a new section to install the LTE chart.

To test everything, I connected srsRAN to the Magma AGW, ran a 4G LTE attach and checked the messages in Wireshark.

Kubernetes · Minikube · Helm · srsRAN 4G · Wireshark · 4G/LTE

The Linux Foundation

[notes: github][report: LTE attach test][PRs: magma]

NeuralCodec-RPi

Jun 2026 – Jul 2026

Neural Speech Codec on Embedded Hardware for Low-Bandwidth Networks

A research oriented project on a real-time neural speech codec deployed on embedded hardware (two Raspberry Pi 4 boards) for low-bandwidth networks (3 to 6 kbps).

Benchmarked 4 codecs (Opus, Codec2, EnCodec, SoundStream) on Pi hardware (Raspberry Pi 4) and measured the codecs' performance with PESQ quality and Real-Time Factor (RTF). SoundStream was selected for deployment.

Built a UDP pipeline for live microphone-to-speaker voice transmission between two Pi boards over Ethernet (RJ45) and WiFi channels.

Material: Two Raspberry Pi 4 boards, USB microphone, RJ45 Ethernet cable, WiFi hotspot.

Python · Bazel · Lyra/SoundStream · EnCodec · UDP · librosa · PESQ · Raspberry Pi · Neural Codecs · Audio Processing

Mohammed V University in Rabat · with Ibrahim Lasfar

[source: github][slides: presentation][commits: 79]

FTPGuard

May 2026 – Jun 2026

ML-Based Intrusion Detection for FTP Servers

A host-based intrusion detection system for FTP servers that combines machine learning with rule-based signatures, evaluated on real production FTP sessions (from the EC2 instance that hosts my portfolio website).

It reads the vsftpd logs and groups them by session. For each session, we extract 17 features about user behavior, and then an Isolation Forest model gives it a score between 0 and 1. For static and known attacks like CVE-2011-2523, brute force and others, we rely on signature rules.

It includes a Flask dashboard (Chart.js + Tailwind CSS) with real-time alert monitoring, session review, and a feedback loop that lets users correct false positives and retrain the model.

Python · Machine Learning · Isolation Forest · scikit-learn · Jupyter · Flask · Chart.js · Tailwind CSS · Docker

Mohammed V University in Rabat · with Hasbi Badr

[source: github][slides: presentation][commits: 128]