Obsessed with building web experiences that feel fast, look sharp, and work for everyone. I turn rough ideas into polished products that leave a mark.
Full-Stack Developer, AI & ML Enthusiast, Front-End Specialist · Oujda, Morocco
I'm a computer science student who fell for the front end — the part where a layout stops being a mockup and starts responding to you. I care about motion that explains something, interfaces that stay quick on a mid-range phone, and code the next person can actually read. Right now I'm looking for an internship or junior role where I can keep learning in public.
École des Hautes Études d’Ingénierie (EHEI) — Oujda, Morocco · 2022 — 2027
Five-year programme: two preparatory years followed by three years of the engineering cycle.
AET Aviation Training & Consulting GmbH — Germany · Aug — Oct 2026
Building a web-based Boeing 737 cockpit training application, extending an existing VR training solution to desktop and tablet.
SQLI — Oujda, Morocco · Aug 2025
Fine-tuned a specialised NLP model for recruitment automation, extracting skills and requirements from technical job postings.
Berufskolleg für Wirtschaft und Verwaltung — Aachen, Germany · 2021 — 2022
Preparatory adaptation class plus the integration class for international students, with advanced German language training.
ENNAHDA High School — Ahfir, Morocco · 2020 — 2021
Physical Sciences stream.
Turns meeting audio into transcripts, AI summaries and tracked action items. An Angular SPA over .NET 9 microservices.
Whispiy turns meeting audio into transcripts, AI summaries and tracked action items, so the decisions taken in a meeting outlast the meeting.
The platform is an Angular single-page application over .NET 9 microservices, migrated from the original Next.js monolith.
Built with Angular, TypeScript, .NET 9, C#, SCSS, Docker.
An interactive Boeing 737 NG cockpit trainer. Trainees run real procedures against a 3D flight deck; instructors get a scored record.
An interactive Boeing 737 NG cockpit trainer for AET Aviation Training & Consulting GmbH. Trainees learn the flight deck by running real procedures against a 3D model — challenge and response, flows, and memory items — and their instructors get the record of how it went.
Trains. Thirty-two procedures across three areas — Normal, Non-Normal and Memory Items — taken from AET’s own syllabus and the Basic Manual B737NG. Each step names a control, the trainee finds it on the flight deck, and the runner scores whether they got it right and whether they needed a hint.
Measures. Every finished run is recorded: how correctly the procedure was applied, how quickly, and which individual steps cost the trainee. Runs are written to the device first and synced afterwards, because the most likely moment for a request to fail is a simulator bay on hotel wifi — and it is also the moment the work matters most.
Administers. A school’s administrator manages their own accounts, roles and retention period. AET manages the syllabus itself: the fleet, the areas of each type’s syllabus, the procedures listed under them, and the steps inside each procedure.
The whole product is an Angular single-page application plus a Supabase project, with no server of our own beyond one Edge Function. It speaks English and German throughout — except the switches. A control is named in English whatever language the interface is in, because that is what is printed on the panel.
Built with Angular, TypeScript, Three.js, Supabase, PostgreSQL, i18n.
A decentralised local AI mesh. Ollama nodes register with an orchestrator that routes each request to the best node.
Echo-System is a decentralised, local AI mesh network. It lets several Ollama instances running across different machines — or locally, for testing — talk to each other through a central orchestrator.
The orchestrator distributes AI workloads intelligently, load-balancing each task across the available nodes according to their capabilities, free memory and current queue.
Built with Go, Ollama, Distributed Systems, Load Balancing.
Qwen2.5-3B-Instruct fine-tuned for recruitment: it reads job descriptions, matches skills and flags the gaps.
In a competitive job market, companies receive a growing volume of applications, and reading CVs and job descriptions by hand is slow, subjective and inefficient.
RecruterAI is a specialised language model that analyses job descriptions and assists candidate selection. It matches the technical skills a candidate has against the ones a role asks for, and flags the ones that are missing.
Built by fine-tuning the pre-trained Qwen2.5-3B-Instruct, with off-domain questions filtered out so it answers only on recruitment. The model is exported to GGUF, so it runs under Ollama and Open WebUI.
Built with Python, Qwen2.5, Fine-tuning, Transformers, GGUF, Ollama.
A career platform of four microservices: project management, an AI interview coach, algorithm practice, CV optimiser.
A full-stack platform made up of four super-microservices: project management, an AI interview coach, gamified algorithm learning, and a CV optimiser.
The backend is a scalable microservice architecture behind REST APIs, spanning Spring Boot, Node.js, ASP.NET and Symfony, with Angular on the front, MySQL and Redis for storage and caching, and Elasticsearch for search.
Built with Angular, Spring Boot, ASP.NET, Symfony, Node.js, MySQL, Redis, Elasticsearch.
A cinematic landing page for an AI art museum. Scrolling dollies the camera through seven rendered rooms.
An immersive, cinematic landing page for Muse, an AI-powered digital museum platform for artists.
Instead of scrolling a page, visitors walk through a rendered contemporary museum: scrolling dollies the camera through seven rooms — lobby, sculpture corridor, exhibition hall, AI curator room, store gallery, membership hall, and a final gold-ring rotunda.
Built with TypeScript, Three.js, WebGL, CSS.
Technology moves fast, and so do I. I'm always exploring new frameworks, patterns and tools — right now that means fine-tuning and running language models locally, distributed systems, and real-time 3D on the web.