Skip to content
Zakaria Guennani

Zakaria Guennani

Software Engineer · Backend & Full-Stack · Applied AI Integration

I work across the full path of a project: understanding what a client actually needs, prototyping quickly, then building the robust backend underneath. I integrate AI where it earns its place — a retrieval-augmented assistant that respects each user's permissions, not a chatbot bolted to a sidebar. Final year at EMSI, two engineering internships behind me, and 2nd place at DaiL's Casablanca AI Lab.

Available part-time now · Full-time from February 2027 · Casablanca, on-site or hybrid

About

I'm a final-year software engineering student at EMSI in Casablanca, graduating in 2027. I got here through a two-year diploma in digital development, which means I was shipping Android apps before I was taught the theory behind them — and I still think that order was the right one.

What I care about is architecture: where a system's boundaries sit, what crosses them, and what happens when one piece stops answering. That shows up in everything below — one service owning the rate-limited upstream so there's a single place to enforce a budget, one schema per service so the shared-database shortcut isn't available, a transactional outbox because "wrote the row and published the event" has to be one decision or neither.

The other half of the job is the part before any of that: sitting with the person who has the problem. My best work this year started with a discovery session, not a ticket — and the feature that mattered most turned out to be a hard block that stops the software from doing something, rather than anything it adds.

I use AI where it's load-bearing and measurable: retrieval over a permission filter, embeddings in Postgres, answers restricted to retrieved context and made to cite their sources. The interesting engineering there is the access control and the retrieval quality, not the model.

I work in four languages — Arabic natively, and French, English and Italian fluently. As a Career Center Ambassador at EMSI I spend a lot of time explaining technical things to people who aren't engineers, which has made me measurably better at the half of this job that isn't code.

What I'm looking for

The short version, for anyone deciding whether the rest of this page is worth their time.

Role
Backend or full-stack engineering — Java and Spring Boot, TypeScript and Next.js, distributed systems, applied AI
Availability
Part-time from now, alongside my final year. Full-time from February 2027, starting with the six-month end-of-studies internship (PFE).
Where
Casablanca, on-site or hybrid.
Languages
Italian, French and English at working proficiency. Arabic native.
Also open to
Convertible internships and graduate programmes — especially on teams that let a junior own a service end to end.

If that lines up with something on your team, email is the fastest route. I answer the same day.

Experience

July – August 2026

Software Engineering Intern · Full-Stack & AI Integration · ABA Technology (Nextronic)

TaskTracker — a project and task management platform I gathered the requirements for, designed, and built independently over nine agile sprints, through to a containerised deployment.

  • Gathered and formalised 19 functional requirements directly with stakeholders, then turned them into a sprint plan I ran to completion — app, PostgreSQL, model server and WebSocket server all shipping together under Docker Compose.
  • Implemented a strict layered architecture in Next.js 16, TypeScript and Prisma, with five hierarchical roles and per-organisation data isolation re-checked server-side on every request. Sessions are signed with HMAC — the client is never trusted for authorisation.
  • Integrated an internal AI assistant using RAG (Ollama, nomic-embed-text, pgvector). Access rights are applied before semantic search rather than after it, answers are restricted to the retrieved context, and every answer cites its sources.
  • Built real-time team messaging on a standalone WebSocket server, authenticated with the same signed session as the main app rather than a second, weaker scheme.
  • Next.js 16
  • TypeScript
  • Prisma
  • PostgreSQL
  • pgvector
  • Ollama
  • WebSocket
  • Docker Compose

July – August 2025

Software Engineering Intern · Full-Stack & Data · Guidya

A career-guidance platform co-developed with the host company's team, turning their business requirements into features. Our build took first place in EMSI's internship competition.

  • Built the multi-domain skills assessments — cognitive, situational and technical — with profile-weighted employability scoring, badges and personalised notifications.
  • Developed the job recommendations with scikit-learn: content-based and collaborative filtering plus K-Means segmentation, served behind a Django REST API with a React front end.
  • Designed the data layer around PostgreSQL for durable state and Redis for the hot paths — the interactive quizzes had to feel instant, and a round-trip to Postgres per question did not.
  • Worked against a real product roadmap rather than a school brief: scoped features with the team, dropped some, shipped the rest.
  • Django REST
  • Python
  • scikit-learn
  • PostgreSQL
  • Redis
  • React
Read the case study →Live demo coming soonSource

Education

Certifications

  • React NativeMeta
  • Software Design and Project ManagementThe Hong Kong University of Science and Technology

Languages

  • ArabicNative
  • FrenchFluent
  • EnglishFluent
  • ItalianFluent

Technical skills

Grouped by what I'd be trusted with on day one, not by how long the list looks. Everything here appears in the work above or in the case studies below.

AI & data

  • RAG
  • Embeddings & vector search (pgvector)
  • LLM integration (Ollama)
  • FastAPI
  • scikit-learn
  • NumPy / pandas
  • YOLOv8

Backend & architecture

  • Spring Boot
  • Microservices
  • Event-driven design (RabbitMQ)
  • REST APIs
  • WebSocket
  • Resilience4j
  • Django REST Framework
  • Node.js / Express

Languages

  • Python
  • Java
  • TypeScript
  • JavaScript
  • SQL

Frontend & mobile

  • Next.js
  • React
  • Tailwind CSS
  • Android (Java, MVVM)
  • React Native

Databases

  • PostgreSQL
  • Oracle DB
  • Redis
  • MongoDB
  • Neo4j
  • Firebase Firestore
  • Prisma ORM
  • Cassandra

DevOps & tools

  • Docker
  • Docker Compose
  • Git / GitHub
  • Vercel
  • Scrum
  • UML
  • AI coding agents (Claude Code)

Projects

Six projects — two built during internships, one in six hours at a hackathon, and one still in progress. Each has a case study: the architecture, the decisions I'd defend in an interview, and the ones I'd make differently today.

TaskTracker

2026

Project management with a permission-aware AI assistant

Built solo during my internship at ABA Technology: projects, Kanban, timesheets, real-time team messaging, and an assistant that answers questions about the organisation's own work. It can only retrieve what the person asking is allowed to see — the permission filter runs inside the vector search, not after it.

  • Next.js 16
  • TypeScript
  • Prisma
  • PostgreSQL
  • RAG
  • pgvector
  • Ollama
  • WebSocket
  • Docker Compose

TyreFlow

2026

Inspection → approved customer offer

Built at DaiL's Casablanca AI Lab: a client discovery session turned into a deployed prototype in six hours. Technician tyre inspections become customer offers that a named coordinator approves — and a hard stock gate makes it impossible to contact a customer about tyres the shop can't supply.

  • Next.js
  • TypeScript
  • Tailwind CSS
  • Vercel

QuantPulse

2026

Event-driven market intelligence

Four Spring Boot services over a RabbitMQ backbone, covering all 81 instruments on the Casablanca Stock Exchange inside a data provider's 100-requests-per-day free tier. The quota is not a footnote — it's the constraint the whole architecture is organised around.

  • Java 21
  • Spring Boot
  • RabbitMQ
  • PostgreSQL
  • Redis
  • Python / FastAPI
  • Next.js
  • Docker
Read the case study →Runs locally — screenshots belowSource

Career Quest

2025

Skills assessment → job recommendations

My internship project at Guidya, built in a team of three that I led. Cognitive, situational and technical assessments feed an employability score weighted for the target role, and a hybrid recommender turns it into job matches. First place in EMSI's internship competition.

  • Django REST
  • Python
  • scikit-learn
  • PostgreSQL
  • Redis
  • Celery
  • React
  • Tailwind CSS
Read the case study →Live demo coming soonSource

EduTrack

2026

Academic tracking for students and teachers

Grades, absences, tasks, study sessions and a reflection journal in one place, with teachers following their groups and taking attendance. React and TypeScript on Supabase, with the schema, migrations and access policies written as SQL. Built in a team of three that I led.

  • React
  • TypeScript
  • Vite
  • Supabase
  • PostgreSQL
  • Recharts
  • Tailwind CSS

OmniScan AR

2026

Spatial knowledge graph for industrial maintenanceIn progress

Point a phone or a Meta Quest 3 at a machine and get its documentation, a 3D twin and a voice assistant anchored around it. A solo capstone in three phases; phase one — the knowledge graph, the vision service and the Unity client's foundations — is under way.

  • Unity
  • C#
  • AR Foundation
  • Meta Quest 3
  • Python / FastAPI
  • YOLOv8
  • Neo4j
  • Docker
Read the case study →Live demo coming soonSource

Bookshelf

What I've been reading lately. Browse the shelf, then pick a book up to turn it over.

01 / 06

La communication efficace par la PNL

René de Lassus

Contact

Hiring, or just want to argue about message brokers? Either is welcome.

z.guennani.dev@gmail.com