Skip to content

Available for full-time work

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

Journey

How I got here.

Where I studied, what I built, and where I worked — oldest first.

  1. 2023Education

    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. 2024Education

    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. 2025Role

    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. 2025Education

    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. 2026Role

    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. NextOutlook

    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.

Evidence

What the work adds up to.

A hackathon win, shipped integrations, a tested codebase — plus the credentials, languages and stack behind them.

#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

Languages

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

Core Stack & Ecosystem

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

Philosophy

How I make engineering decisions.

Positions I arrived at by shipping and maintaining production systems. Each one is a trade-off I would defend in review.

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.

Ecosystem & Core Technologies

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

Frequently asked questions

Anything not covered here? Email me at abdelhay.mallouli@gmail.com.

Hiring for a role I'd fit?

I'm open to full-time, contract and freelance work — on-site in Morocco or remote. Happy to walk through any of the case studies in detail.

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.