Systems
Structure, architecture, scalability.
Platforms that hold up when the requirements move. Reusable foundations instead of one-off builds.
From complex ideas to real experiences.
Structure, architecture, scalability.
Platforms that hold up when the requirements move. Reusable foundations instead of one-off builds.
Interfaces, interactions, stories.
Places, culture and content turned into something a person can actually explore.
Curiosity, prototypes, strange ideas.
Things built to find out whether they could exist. Some of them become products.
Three of these started as a single request and turned into something reusable. That is usually the more interesting problem.
One architecture. Many identities.
A reusable hospitality foundation that becomes a different hotel without rebuilding the product from zero.
I focused on creating the reusable components that make the hospitality system work across different hotel identities. The page is assembled from configurable sections, so a new property becomes a matter of composition, content and brand treatment rather than rebuilding the same interface from scratch.
Sections are components with a defined contract. Layout, typography and colour are the configurable layer; structure and responsive behaviour stay consistent across implementations.
One platform. Many tenants. Multiple experiences.
A multi-tenant travel product with a platform-level control plane, tenant operations, trip management, and a mobile traveler experience.

Super Admin

Tenant Admin

Trip Manager
Traveler — mobile web application



One platform.
Four layers.
The interface changes with responsibility. The system underneath stays connected.
I built Trippp from scratch by myself, starting only from a brief. That meant shaping the product model, the four role-specific interfaces, the backend contracts, authentication, storage, jobs, email, monitoring and deployment as one connected system.
One connected multi-tenant product model underneath four layers: Super Admin, Tenant Admin, Trip Manager and Traveler.
A brief becomes a decision.
A request-for-proposal workflow shaped as a product: capture the brief, structure the request, track the work, and deliver a proposal clients can act on.





The workflow is the product.
I built the product from scratch by myself from a brief, using a modular API-first architecture and server components by default. The workflow was modelled first, then each stage received the interface it needed.
One record moving through defined states inside a modular Next.js application.
Drâa-Tafilalet, Morocco
I developed the website in Next.js from the project designer's design and the content creator's material.

Regions
Geography becomes navigation.





A region contains more than a visitor can hold: landscape, culture, activities, nature, places, routes. Presented as a list it reads as an inventory. Nobody plans a trip from an inventory.
I developed the website from the design created by the project designer and the material prepared by the content creator, translating both into a responsive destination experience in Next.js.
One region, four connected products: a promotional website, an inspiring mode, an interactive map, and a mobile app for exploring and planning on the go.
I rebuilt the website with a new design system created with the designer and content from a content creator. I also built the mobile app with Expo and React Native.



Built with Expo and React Native. Explore places on the map, browse discoveries, and plan a trip from a mobile interface.



A region is easy to list and hard to make navigable. The work was deciding what a visitor sees first, and what they should be able to find next without being told it exists.
Fès-Meknès, Morocco — Destination, culture, discovery.
My role was improving the design implementation and code quality in React.js.




Playful ideas become real products when I put them to work.
Turning places into playable challenges.
A growing deck of short games organised into place packs, contexts and challenge modes. Pick a place, choose a game, host a match or join with a code.
Each place can become its own playable deck with local contexts, moods and challenges.
Puzzles, memory, reflex, navigation, audio and other compact formats live inside the same deck.
Host a match or join a challenge with a code, so the games can become a shared experience.
JLiKA is the place where brand, product, customization and storefront get built as one thing.
No client brief, no inherited system — just the decisions that appear when the whole product is mine to shape.
Brand and product language are treated as one system rather than a logo placed on top of a template.
Personal choices live inside the product flow without turning the shopping experience into configuration software.
The experiment ends as a real place to browse and shop, not a concept page that stops at presentation.
I’m Khaoula, a software engineer and product builder. I built Trippp and Lumi RFP from a brief, from the product structure through implementation.
In collaborative projects, I bring the design and content into responsive, working websites. The systems beneath the interface matter as much to me as what people see and use.