Data & AI Engineer.

Data / AI / Dev / ML Based in Casablanca, Morocco

About me.

I'm Hamza, an aspiring Data & AI Engineer based in Casablanca. I'm interested in how data and AI can solve practical problems, and I learn best by building projects.

I enjoy connecting the pieces: preparing data, exploring models, and turning the results into useful applications. My goal is to grow into an engineer who can take an idea from raw data to a working product, while continuing to learn about data engineering, machine learning, and cloud technologies.

Machine LearningDeep LearningData EngineeringCloudPython

From data to decision.

Raw data

Missing values, error codes and outliers.

Clean data

Imputed, capped and ready to learn from.

Model

Learns the pattern and shows what weighed in.

Decision

A probability, a threshold, then an action.

My projects.

[A short line about your profile: data, machine learning, deep learning, IoT, and what you're looking for (PFE internship, apprenticeship...).]

Latest project

Supply Chain Risk Radar

Reads world news (18.4 million GDELT events) and flags which suppliers are exposed through their city or the strait on their shipping route, by comparing each place with its own normal over 28 days. A full lakehouse pipeline feeds a static site that reads the data in the browser. The supplier portfolio is fictional; the events are real.

18.4 MGDELT events
0duplicates
33 / 33dbt tests passing
KafkaSparkIcebergdbtDuckDB
Data engineering

MobilityPulse France

Tracks the Nantes bike-sharing network, spots empty and saturated stations, and suggests which bikes to move from where to where. A pipeline collects the open feed every 60 seconds and the interface shows the real age of the data.

KafkaSparkPostgreSQLGBFS
Machine learning

Credit Scoring

A LightGBM model estimates the probability that a client defaults within 2 years and shows which factors weighed in the decision. Trained on about 150,000 clients, served by a live API.

LightGBMSHAPREST APIKaggle
LightGBM compared with logistic regression, random forest and XGBoost, tuned on AUC-PR with 5-fold stratified cross-validation. The test set was used once. Explanations are computed with SHAP. Open the demo
Streaming pipeline: the GBFS feed is polled every 60 seconds, published to Kafka, cleaned and deduplicated with Spark, then stored in PostgreSQL. The descriptive and prescriptive views are live. The predictive part is a trend heuristic, because the collected history is still too short to train a model. Open the project
Kafka and Spark Structured Streaming feed Iceberg tables (bronze, silver) on MinIO; dbt with DuckDB computes a 0 to 100 score, checked by 33 tests. Zero duplicates, 107 quarantined rows, and every figure traces back to a downloaded file. The site reads Parquet files in the browser with DuckDB-WASM, no server. Events are classified by rules rather than an LLM, and the site shows what the press reports without explaining why. Open the demo

Latest from the blog.

Three posts a week on data, AI and tech news, explained clearly and sourced.

Latest post

Your tables, any engine.

Know what Databricks and Snowflake really changed in October, which numbers are only vendor claims, and follow a 5-step plan you can run this week.

IcebergDelta LakeUnity CatalogSnowflake

Certifications.

Oct 2025What is Data Science?IBM / Coursera
Oct 2025Data Engineering on AWS - FoundationsAWS Training
Jul 2025Data Analytics Job SimulationDeloitte / Forage
Nov 2023Google Analytics CertificationExpired Nov 2024Google
Oct 2025Fundamentals of Machine Learning and Artificial IntelligenceAWS Training

My skills.

[Python, Scikit-learn, TensorFlow / PyTorch, computer vision, NLP...]
[SQL, Pandas, Docker, Cloud (AWS/GCP)]