mohamed-mabsout — ~/portfolio
⌘⊟◫
EXPLORER
PORTFOLIO
▾ content
▾ projects
▾ meta
● Open to opportunities
Salé, Morocco
github.com/mohamedmabsout
README.md ×
UTF-8 · LF · spaces:2
1
2
3
4
5
6
7
8
9
# Mohamed Mabsout
 
> State Engineer · ENSA El Jadida
> Security-first backend & infrastructure
 
I design and ship secure backends, hardened infrastructure, and full-stack systems that survive real production traffic — without leaking data.
18+
MONTHS IN PRODUCTION
6
MAJOR PROJECTS
3
AWS CERTIFICATIONS
0
DATA LEAKS
view work → get in touch ↓ download CV (PDF)
// WHO I AM

Building secure systems that actually ship.

I'm a State Engineer from ENSA El Jadida, currently freelancing for SIB building production systems in both Java (Spring Boot) and Python (FastAPI) — from JWT/RBAC-enforced ERP modules serving 100+ employees to an LLM-powered CV-parsing pipeline where every model output is re-validated locally before it touches the database. I work where security meets engineering. I care about the boring parts: access control, data integrity, and what happens at 3am when something breaks.

locationBouknadel, Salé, Morocco
degreeState Engineer — ENSA El Jadida (2025)
languagesArabic (native) · French (C2) · English (B2+)
emailloading…
Security by default
RBAC, JWT and encryption baked in — not bolted on.
Production mindset
Every project I've shipped runs in a real production environment.
Full-stack depth
From database schemas to React UIs and Docker deployments.
Measurable outcomes
I ship things that move real numbers, not demos.
photo.jpg—
Mohamed Mabsout
// WHAT I'VE BUILT

Projects

Production systems, graduation projects, and personal builds. All shipped, all secured.

// 01 LIVE · 2026 FLAGSHIP

Industrial PO & Subcontracting Platform

SIB · Kénitra

A JWT-secured platform automating the full purchase-order and subcontractor execution lifecycle, with multi-level approval workflows and centralized access control.

PROBLEM

Purchase orders and subcontractor flows ran on spreadsheets — no audit trail, no access control, and slow multi-level sign-off.

APPROACH

Built an end-to-end platform with centralized JWT-based security, a multi-level approval workflow engine, and containerized deployment.

OUTCOME

The full order lifecycle now lives in one secured, auditable system — faster and fully traceable.

−60%
manual processing time
+35%
faster approval cycle
PythonFastAPIReactReduxPydanticDockerMariaDBJWT
auth-flow.svg● verified
Client · React UI
browser
HTTPS
API Gateway · FastAPI
rate-limit · CORS
verify JWT
Approval Engine
multi-level
RBAC
MariaDB
audit log
auth.py
1
2
3
4
5
def require_role(role):
  claims = decode(token, SECRET)
  if role not in claims["roles"]:
    raise Forbidden(403)
  return claims
// 02 LIVE · 2026 AI · RAG

Internal HR Assistant — RAG over a Private Corpus

SIB · Kénitra

A retrieval-augmented assistant answering employee questions over a private HR corpus — permission filtering applied before similarity is ever computed, and explicit refusal when the corpus cannot support an answer.

PROBLEM

HR answered the same policy questions every week while the answers sat in documents nobody could search. Any assistant over that corpus risks the opposite failure: surfacing a salary or a contract clause to the wrong employee.

APPROACH

Hybrid retrieval — BAAI/bge-m3 embeddings with a tuned relevance floor, plus a lexical rescue path for exact HR terms that vectors miss. Access rights are a SQL predicate applied before scoring, so a forbidden chunk is never ranked. Embeddings run in a dedicated sidecar because the 2–3 GB model would not fit the production VPS.

OUTCOME

Answers stay grounded in the corpus, and questions it cannot cover are logged into a weekly gap digest that drives what gets documented next. Rolled out to a pilot group before general access.

0
forbidden chunks ever scored
1.3k
lines of tests, 3 security suites
PythonFastAPIGeminiBAAI/bge-m3Hybrid retrievalRBACDockerPytest
Private codebase
retrieval-pipeline.svg● 1024-d
employee question
language router
permission filter (SQL)
applied before scoring
semantic
bge-m3 ≥ 0.55
lexical
rescue path
top-k chunks → Gemini
grounded answer
refuse
→ gap digest
// 03 LIVE · 2025

Enterprise ERP — HR & Payroll Modules

SIB · Kénitra

Three sensitive ERP modules — HR management, payroll automation, and time tracking — serving 100+ employees, with a real-time cost engine for project profitability and fine-grained RBAC data access control.

PROBLEM

Sensitive HR and payroll data demanded strict, role-scoped access — and leadership needed real-time financial visibility.

APPROACH

Designed modular services with fine-grained RBAC at the data-access layer and a real-time cost engine feeding profitability dashboards.

OUTCOME

Faster financial decisions with zero unauthorized data exposure across the organization.

+40%
faster financial decisions
0
unauthorized data exposures
PythonFastAPIReactTailwindRBACMySQLAlembicDocker
Private codebase
rbac-access.svg● 4 roles
ADMIN HR FINANCE EMPLOYEE
policy check
RBAC Policy Engine
HR
module
Payroll
module
Time
tracking
Cost Enginereal-time
// 04 PFE · 2025

HR-Expense

Integral Building Solutions (SIB) · Kénitra

A full-stack expense & HR management app built from scratch as my graduation (PFE) project — a hardened Spring Boot (Java 22) backend with Spring Security, JWT session encryption, and strict RBAC across four user roles.

CONTEXT

My end-of-studies project: prove I could design and harden a real internal tool, not just a prototype.

OUTCOME

Passed every internal security audit, with role separation enforced from the filter chain down to the data layer.

100%
internal security audits passed
4
RBAC user roles
Java 22Spring BootSpring SecurityReactTypeScriptHibernateJWTMySQL
↗ View on GitHub
SecurityConfig.java
1
2
3
4
5
6
7
http
  .csrf(c -> c.disable())
  .authorizeHttpRequests(a -> a
    .requestMatchers("/api/admin/**")
      .hasRole("ADMIN")
    .anyRequest().authenticated())
  .addFilterBefore(jwtFilter, ...);
// 05 PUBLIC SECTOR · 2024

Internship Request Portal — R.A.K

Régie Autonome Intercommunale de Kénitra

A centralized public-sector platform automating the full internship application workflow for a utility handling 500+ cases a year — replacing an entirely manual, paper-based process.

PROBLEM

Internship requests were tracked on paper — lost forms, no status visibility, weeks of back-and-forth.

OUTCOME

A single auditable queue from submission to approval and archival — handling 500+ cases without paper.

500+
annual cases handled
+40%
faster processing
SymfonyPHPMySQLphpMyAdmin
↗ View on GitHub
request-workflow.svg● automated
1 · Applicant submits
2 · Review queue · staff dashboard
3 · Approval / reject · notified
4 · Archived · searchable
// 06 SIDE PROJECT

Expense.SIB Mobile

Flutter / Spring Boot · deployed internally

A cross-platform mobile app paired with an encrypted Spring Boot backend for secure inventory and expense management — built so field staff could work without exposing data on the device.

RESULT

Faster, more accurate stock counts in the field — with encrypted sync back to the central system.

+30%
inventory accuracy
FlutterDartJavaSpring BootCrypto
↗ View on GitHub
mobile-sync.svg● encrypted
Flutter
app
Spring API
TLS · crypto
encrypted sync ↑↓
Central DB
// 07 HOMELAB

Self-hosted Infrastructure Gateway

Raspberry Pi · Linux

A self-hosted Linux server on a Raspberry Pi — hardened config, reverse proxy, DNS routing, and network gateway. Practical, hands-on validation of sysadmin, networking, and security-hardening skills.

WHY

Because the best way to understand production infra is to run your own — firewall, TLS, DNS and all.

LinuxRaspberry PiNginxDNSNetworking
↗ View on GitHub
gateway.conf
1
2
3
4
5
6
7
server {
  listen 443 ssl;
  server_name home.local;
  location / {
    proxy_pass http://10.0.0.20:8080;
  }
}  # ufw deny incoming
// TECH STACK

Skills

// SECURITY & PROTOCOLS
RBACJWTSpring SecurityAESRSAAPI SecurityVulnerability Mgmt
// BACKEND ENGINEERING
PythonFastAPIPydanticJava 22Spring BootHibernatePHPSymfonyNode.js
// FRONTEND
ReactRedux ToolkitTypeScriptViteTailwind CSSFlutterDart
// CLOUD & DEVOPS
DockerAWSLinuxGitAlembicNetwork Architecture
// DATABASES
MariaDBMySQLMongoDBSQL OptimizationRelational Modeling
CERTIFICATIONS
AWS
Cloud Security
AWS Academy
AWS
Engineering Operations
AWS Academy
AWS
Cloud Foundations
AWS Academy
// LET'S WORK TOGETHER

Get in touch

contact.sh
#!/bin/bash
# Open to full-time roles, freelance projects, and collaboration.
# Response within 24h.
phone+212 659 59 28 23
locationBouknadel, Salé, Morocco — open to remote / hybrid / relocation
→ email me ↓ download CV (PDF)
// Designed & built by Mohamed Mabsout · 2026
⎇ main ● Open to opportunities EN · FR UTF-8 Ln 1, Col 1