Zum Inhalt springen

Verfügbar für full-time

Full-stack products that work the first time and hold up after.

I write the tests before the feature, trace the data model before the interface, and ship code someone else can read six months from now. Attendance systems that can't be faked, dashboards that catch problems early — that discipline is why they still work.

About

Abdelhay Mallouli

I'm a full-stack developer based in Tangier. Most of the work I take on has real consequences attached — someone's attendance record, someone's exam eligibility, someone's risk score. That's a different kind of pressure than shipping another feature nobody depends on.

When a system decides whether someone gets to sit an exam, correct beats clever every time. So I don't start with the interface. I start with the data model, work out every way a feature could fail, and only write the front end once I trust what's underneath it.

A remote stretch of work for a team abroad changed how I write code. I couldn't walk over and explain a decision in person. The commit history had to do that instead, across a time zone and a language gap. I still write that way now, for whoever opens the file next.

Backend is where I stay longest, because that's where mistakes compound. Redraw an interface in an afternoon; live with a wrong schema for years. It's the same reason I've gone deep on running AI on infrastructure I control rather than just calling an API — the constraint of keeping sensitive data in-house is one I take seriously, even when it means a slower response.

I've turned down speed for correctness more than once. I'd rather hand you four systems I can explain line by line than twenty I'd rather not open again.

Based in
Tangier, Morocco
Focus
Backend architecture, full-stack delivery
Currently
Open to new roles

Werdegang

Wie ich hierher kam.

Wo ich studiert, was ich gebaut und wo ich gearbeitet habe — älteste zuerst.

  1. 2023Ausbildung

    Baccalauréat, Physics and Chemistry

    Lycée Anoual · Tangier, Morocco

    Moroccan National Baccalaureate, specialising in advanced mathematics and the physical sciences.

    • Mathematics
    • Physics
    • Chemistry
  2. 2024Ausbildung

    Web Development — dual Simplon & OFPPT certification

    SOLICODE — Centre de Solidarité Numérique · Tangier, Morocco

    A full development lifecycle under an active-pedagogy model, from UI/UX design through to back-end systems.

    • PHP (OOP)
    • React
    • JavaScript (ES6)
  3. 2025Position

    Backend & Automation Developer (Internship, remote)

    Pragmatic Minds GmbH · Kirchheim unter Teck, Germany

    Architected and shipped a suite of Mattermost plugins and Go microservices automating the company's HR processes.

    • Go
    • Docker
    • PostgreSQL
  4. 2025Ausbildung

    Mobile & Full-Stack Development — dual Simplon & OFPPT certification

    SOLICODE — Centre de Solidarité Numérique · Tangier, Morocco

    Advanced specialisation in native Android and enterprise web architecture, with DevOps, automated testing and server administration.

    • Kotlin
    • Jetpack Compose
    • Android Studio
  5. 2026Position

    Full Stack & AI Developer

    Mooroot · Tangier, Morocco

    End-to-end feature development and AI integration for a document platform that converts Markdown into branded presentations.

    • Laravel
    • PHP
    • Tailwind CSS
  6. NextAusblick

    Backend depth, and a team to build with

    Looking for a full-stack or back-end role where code quality and durable architecture matter, and where I can bring what I have built around testing and API design.

Nachweise

Was die Arbeit ergibt.

Ein Hackathon-Sieg, ausgelieferte Integrationen, eine getestete Codebasis — dazu die Zertifikate, Sprachen und der Stack dahinter.

#1OFPPT Hackathon 2026
First place, building CampusOS with a team of four
6

Production integrations shipped

Mattermost plugins automating HR operations at Pragmatic Minds

130+

Automated tests written

61 PHPUnit tests on AttendanceFlow, 69 on CampusOS

Sprachen

  • ArabicNative
  • EnglishB2/C1 — Professional
  • FrenchB1 — Intermediate
  • GermanB1/B2 — Intermediate

Stack & Ökosystem

Laravel
PHP
Go
React
Next.js
TypeScript
JavaScript
Kotlin
Python
Tailwind CSS
Alpine.js
Inertia.js
Vite
MySQL
PostgreSQL
SQLite
Docker
GitHub Actions
GitFlow
Ollama
Figma

Philosophie

Wie ich technische Entscheidungen treffe.

Positionen, zu denen ich durch das Ausliefern und Warten von Produktivsystemen gekommen bin. Jede davon ist ein Kompromiss, den ich im Review vertreten würde.

01

Architecture first

SOLID principles and N-tier boundaries are decided before the first line of a feature is written. Moving a seam later costs far more than drawing it correctly the first time.

02

TDD, not test theater

Tests are written against the behavior a user or another system depends on, and verified with PHPUnit before a feature is considered done — not added afterward to hit a coverage number.

03

Componentized by design

Atomic Design keeps UI systems modular and white-label-ready from the start, so a new client workspace is a configuration change, not a rebuild.

04

Maintainability over cleverness

The next person to read this code — often me, some months later — matters more than a concise trick. Clean, organized code is part of the deliverable, not a nice-to-have.

05

Security is not a phase

RBAC, OAuth2, and GDPR-aware handling of data belong in the same commit as the feature they protect, not in a hardening pass before launch.

06

Discipline in version control

Git Flow isn't bureaucracy. It's what keeps a codebase structurally intact when several people are shipping into it at once.

Ökosystem & Kerntechnologien

Laravel
PHP
Go
React
Next.js
TypeScript
JavaScript
Python
Kotlin
Tailwind CSS
MySQL
SQLite
Docker
GitHub Actions
GitFlow
Figma
Alpine.js
Inertia.js
Vite
HTML5
CSS
Ollama
Chart.js
PostgreSQL
REST APIs
GraphQL
OAuth2 / OpenID
Microsoft Graph API
Personio SDK
PHPUnit / TDD
NativePHP
Spatie RBAC
Retrofit
MVVM
Scrum / GitFlow

Häufig gestellte Fragen

Etwas nicht beantwortet? Schreiben Sie mir an abdelhay.mallouli@gmail.com.

Suchen Sie jemanden für eine passende Stelle?

Ich bin offen für Festanstellung, Werkverträge und freiberufliche Arbeit — vor Ort in Marokko oder remote. Gerne gehe ich jede der Fallstudien im Detail durch.

What kind of work are you looking for?

Full-time, contract, or freelance full-stack roles. I'm finishing an internship at Mooroot in Tangier and open to on-site work in Morocco or remote work with teams elsewhere. I've already completed a remote engagement with a company in Germany, so the working model is proven, not theoretical.

Where are you based, and how does that work across time zones?

Tangier, Morocco — UTC+1, the same hour as Berlin and Paris for most of the year, and one ahead of London. During my internship with Pragmatic Minds in Kirchheim unter Teck, I worked the full German business day with no scheduling friction.

What does your stack actually look like in production?

Laravel and PHP for most backend work. Go where a service needs to be small and fast. React with TypeScript on the front end, usually over Inertia or Next.js. Around that: MySQL and PostgreSQL, Docker, GitHub Actions, and Tailwind. CampusOS and AttendanceFlow are both documented in full on this site if you want to see it in practice.

How do you approach a system you've never seen before?

I want the data model, the boundaries, and the failure modes before I want the feature list. Clean layering only pays off when it's decided early rather than patched in afterwards, so expect me to spend the first days reading migrations and tracing a request end to end, rather than shipping something that has to be unpicked later.

Do you write tests, or is that a stated preference?

I write them. AttendanceFlow has 61 PHPUnit tests and CampusOS has 69, with dedicated coverage for the parts that would be dangerous to get wrong: token forgery and expiry, geofence boundaries, subnet matching, score aggregation. TDD is how I verify a feature is correct — not a coverage number I chase afterwards.

How do you handle security and data protection?

RBAC, OAuth2, and GDPR-aware data handling belong in the same commit as the feature they protect, not a hardening pass before launch. On CampusOS that meant keeping the entire AI inference path on-premise, with Ollama and Mistral running locally, so regulated student data never left the campus network. Slower answers, in exchange for data residency — that trade-off wasn't close.

What's the fastest way to reach you?

Email: abdelhay.mallouli@gmail.com. I answer within two days. If it's easier to talk it through, my CV and LinkedIn are linked at the top of this page, and I'm happy to walk you through any of the case studies in more detail.