Find the right problem
Discovery, journeys, opportunity framing, and alignment around the decision that matters.
This portfolio is private. Enter the password to continue.
Don't have the password? Reach me at luismattioli91@gmail.com or on LinkedIn.
I turn interconnected journeys, operational constraints, and product goals into digital experiences that feel clear, useful, and human.
At Carnival, I design guest-facing products and the operational tools behind them — across mobile ordering, onboard chat, ship maps, kiosks, and crew workflows.
I move between the big picture and the interaction detail, keeping user needs, business goals, and operational reality connected.
Discovery, journeys, opportunity framing, and alignment around the decision that matters.
Guest actions, operational workflows, cross-channel logic, rules, dependencies, and edge cases.
Flows, prototypes, interaction states, testing, and clear feedback at every critical moment.
Reusable patterns, design systems, collaboration, and thoughtful handoff that helps teams ship.
A few of the experiences I've helped design — from guest and crew flows through edge cases, UI, and design system patterns. Click any card to open the full case study.
Carnival's guest-facing onboard ordering experience in the HUB App — food, drinks, retail, pickup, delivery, stateroom, and dine-in.
The crew-facing counterpart to Mobile Order — a responsive web app for receiving, managing, and fulfilling guest orders across service stations.
Helping guests stay connected at sea — including the ability to purchase Chat for an entire travel party.
Selected spatial UX and cartography work for searchable, zoomable, POI-based onboard map patterns.
I'm a Product & UX Designer focused on hospitality products where digital experiences need to work with real-world operations.
I started as a visual designer and illustrator before moving into UX and product design. That background still shapes how I work: I care about clear systems, strong visual hierarchy, polished interactions, and products that feel easy to understand.
At Carnival, where I've worked since April 2022, I design guest-facing and crew-facing experiences for the HUB App and related onboard tools. My work often sits where a guest action becomes an operational task — placing an order, messaging a party member, managing fulfillment, or understanding what happens next.
I'm especially interested in:
I'm open to full-time UX & Product Design opportunities in Central Florida, and remote / hybrid teams focused on digital product, hospitality, travel, entertainment, or user experience.
A guest-facing ordering experience inside Carnival's HUB App, designed to support onboard food, drinks, retail, pickup, delivery, stateroom, and dine-in ordering flows.
Mobile Order is Carnival's guest-facing ordering experience inside the HUB App. It began as a more specific Drink Order concept, but the broader product goal was bigger: create a scalable onboard ordering platform that could support multiple catalogs, venues, fulfillment types, and guest needs across the ship.
The experience needed to make ordering feel simple for guests while handling the complexity behind the scenes: menus, modifiers, upsells, gratuities, beverage package rules, order status, delivery and pickup modes, and location confidence.
Guests needed a convenient way to order onboard without waiting in lines or depending only on in-person service. At the same time, the product had to support many use cases beyond drinks — including food, retail, stateroom delivery, pickup, and dine-in ordering.
The challenge was to design a flexible guest-facing ordering flow that felt familiar and easy, while still accounting for ship-specific constraints, connectivity, guest location, payment rules, fulfillment status, and confidence that the order would reach the right person.
The project started from the need to move beyond a narrow ordering flow and create a scalable system for onboard ordering.
We reviewed ordering, delivery, grocery, and e-commerce experiences to understand common patterns for menus, carts, checkout, fulfillment, and order tracking.
We mapped how guests browse, customize items, add to cart, confirm payment, track status, reorder, and resolve uncertainty after placing an order.
We explored multiple prototypes, including different approaches to location selection, quantity controls, cart behavior, and order status views.
Testing showed that guests were especially concerned about order confidence: whether the order would get lost, whether the right person would receive it, and how they would be identified.
Those learnings helped shape verification and status patterns, including a low-cost “secret word” concept to help confirm delivery without adding heavy operational friction.
Early ordering explorations — back when this was still “Drink Order” — surfaced a key testing insight: guests needed confidence that an order would reach the right person, and crew needed a simple way to prevent wrong handoffs. The design response was a low-cost verification model — a secret word plus an optional selfie — that built delivery confidence without adding heavy operational friction.
The final direction introduced:
We deliberately mapped the hardest fulfillment type first. Ship-area delivery's happy path runs from landing and categories, to item details, to confirming a delivery location, to secret-word and selfie verification, and finally order tracking. Because it was the most complex path, solving location, tracking, verification, and handoff here produced patterns that could then scale down to simpler flows like pickup, stateroom, and dine-in.
Fulfillment modes · One core flowPilot data showed encouraging early signals around speed, repeat usage, and demand concentration.
Median completion time across the analyzed pilot dataset.
158 of 284 distinct guests — and 132 of 219 groups — placed more than one order.
Of observed mobile order volume came from the top revenue center.
Delayed orders, adjustment activity, and low refund / cancellation rates helped identify where the experience could improve.
Based on an analyzed pilot dataset · observed volume only, not a production performance guarantee.
Experience evolutionWe evolved a single-purpose ordering flow into a scalable platform that supports more guest needs, clearer handoffs, and operational confidence.
Mobile ordering in hospitality is not just an e-commerce problem. The moment a guest taps “place order,” the experience becomes operational. A clear guest flow only works if the fulfillment model behind it can support the promise being made on screen.
This project taught me to design for the full service loop: what the guest sees, what the system needs to know, what crew needs to do, and what happens when the ideal path breaks.
A crew-facing responsive web app designed to help Carnival crew receive, manage, and fulfill guest orders across onboard service stations.
Order HUB is the crew-facing counterpart to Mobile Order. While Mobile Order lets guests place orders from their phones, Order HUB gives crew members the operational tool needed to receive, manage, prepare, and fulfill those orders onboard.
The product was deliberately separate from the native guest HUB App. It was built as a responsive web app so it could work across phones, tablets, and desktop screens depending on the fulfillment context: a waiter moving around the ship, a bartender working from a service station, or a manager supervising order volume.
The crew experience could not simply mirror the guest UI. Guests need a simple ordering flow; crew need a fast, role-aware tool built around real operational behavior under pressure.
The challenge was to design a crew-facing system that helped different roles act quickly and accurately while supporting multiple fulfillment types, service stations, order states, and manager controls.
We looked at how crew actually receive, prioritize, prepare, and deliver orders, including concerns around guest location, drink quality, service levels, tipping, and order volume.
Crew roles were separated by behavior: waiters, service station staff, and managers do not need the same interface or the same actions.
The experience introduced crew login, role selection, service station subscription, and online/offline availability so crew could control where they were working and what orders they received.
The queue became the heart of the tool, separating new orders from in-progress work and helping crew focus on the most relevant orders without overwhelming them.
We defined states such as pending, claimed, being prepared, out for delivery, ready, completed, and canceled, keeping them aligned with the guest-facing order tracker.
We designed flows for cancellation, out-of-stock handling, order history, guest no-shows, and manager review.
The app needed to work on mobile for waiters, tablet breakpoints for pickup and station use, and desktop views for management and supervision.
Early sketches helped define the crew-side fulfillment model before moving into higher-fidelity UI. I used them to separate available orders, claimed work, order detail, delivery handoff, guest confirmation, and completion states — the operational building blocks that later shaped Order HUB.
Two user types · Role-based UXOrder HUB has only two user types — Admin and Team Members — with Team Members split across Delivery, Dine-In, and Pickup fulfillment contexts. This breakdown shaped the role-based views and permissions across the app.
The final direction introduced:
The most complex fulfillment path in Order HUB — and the first flow we mapped end to end. It follows a waiter from login and service-station subscription through accepting, preparing, and delivering guest orders across multiple stations on the ship. In parallel, we designed the Manager / Admin experience — shown below.
In parallel · Manager / AdminThe manager / admin side, designed in parallel with the crew flows. Admins manage team members and service stations, send reports, and oversee open and closed orders across the operation.
Pilot data helped show how the crew-facing fulfillment layer could support visibility, speed, and operational monitoring.
Median fulfillment time, with a ~11.2 min 90th-percentile completion time.
The primary fulfillment path handled most observed volume and completed faster than the secondary path.
Surfaced the specific fulfillment paths and revenue centers where orders ran past 5–10 minutes.
Adjustment, refund-status, and cancellation data framed Order HUB as an operational monitoring tool, not just an order queue.
Based on an analyzed pilot dataset · observed volume only, not a production performance guarantee.
Crew-facing tools need a different design mindset than guest-facing products. The goal is not delight in the same way; it is speed, clarity, confidence, and operational fit.
Order HUB taught me that service design depends on both sides of the journey. A guest-facing ordering product only works when the crew-facing system makes fulfillment realistic.
A paid messaging experience inside Carnival’s HUB App that helps guests stay connected with their travel companions at sea — including the ability for one guest to purchase Chat for an entire travel party.
On a cruise, regular cellular service is limited or unavailable, so staying in touch with your travel group becomes a real guest need — families split up, plans change, and a simple “where are you?” can quickly turn frustrating. Onboard Chat gives guests a way to message their travel companions inside the HUB App.
The challenge wasn’t just designing a chat UI — it was modernizing a paid communication product inside a cruise environment, on top of a third-party messaging SDK, while keeping the experience branded, understandable, and realistic about connectivity at sea.
The existing experience had several points of friction: guests needed a clearer way to understand who they could message, how to start or manage conversations, what Chat cost, and what happened when they purchased it for themselves or others.
The redesign had to balance three things at once: the guest’s need to communicate quickly, the business need to explain a paid feature clearly, and the technical reality of messaging on a ship — where connectivity and vendor limitations shape what the product can promise.
Looked at the legacy Chat experience and identified friction around purchase, contact management, group messaging, empty states, and unclear system behavior.
Centered the structure on conversations, contacts, friend requests, single chats, group chats, and group details — clarifying what guests could do and how each object behaved.
The core product opportunity: how one guest could buy Chat for themselves and other travel companions, including confirmation, pricing clarity, and edge cases.
Brought the experience closer to modern messaging expectations: reply, edit, delete, forward, read states, group management, message options, and clearer conversation states.
Kept some patterns consistent across platforms while following native behavior elsewhere — for example, long-press and bottom-sheet actions on Android instead of iOS-style swipe patterns.
Because spotty connectivity is normal at sea, failed, pending, empty, and not-purchased states were treated as part of the core experience, not exceptions.
Documented flows, states, native platform differences, and vendor constraints so the team could implement and test the experience more consistently.
The final experience introduced:
The purchase flow allowed guests to activate Chat for themselves or for members of their travel party, while accounting for adult purchase, minors, checkout, and activation states.
Core Chat ExperienceThe core Chat experience covered conversations, contacts, one-on-one threads, group threads, and group details — creating the foundation for how guests stayed connected onboard.
Platform Behavior DifferencesiOS and Android required different native interaction patterns for actions like forwarding and deleting messages, while keeping the overall Chat experience consistent across platforms.
Chat performance data showed encouraging signals around adoption, repeatable usage, and purchase-friction control.
Average penetration across analyzed sailing-level records.
Of sailings reached 30%+ penetration.
Median refund rate across the observed dataset.
Improved refund rate in the second observed period.
Based on analyzed Chat performance data · no message-content data included.
Designing Chat for a cruise environment taught me that trust is the product. Guests need to know who they can reach, what they are paying for, and whether the system actually understood their action.
It also reinforced that constraints aren’t just technical details. Connectivity, platform behavior, vendor SDK limits, paid-access rules, and group dynamics all shape the experience. The design challenge was to make those constraints understandable without exposing the complexity behind them.
A cartography and map UI foundation for Carnival's HUB App, designed to move onboard maps from static deck-map images toward a scalable, interactive map experience with pinch-and-zoom, POIs, search, zone-aware orientation, deck detail, and future location-aware capabilities.
Today, the HUB App map experience is based on static deck-map assets — essentially image-based maps such as PNG, JPEG, or PDF-style deck views. These maps help guests view the layout of a ship, but they are limited as an interactive product experience.
Static maps can show where venues and spaces are located, but they do not behave like a modern map. They are harder to search, harder to update, harder to scale consistently across ships, and limited when it comes to pinch-and-zoom, progressive detail, dynamic POIs, category filtering, zones, and future location-aware features.
Ship Maps was created to move Carnival toward a more robust interactive map foundation. The goal was to define a scalable cartography and map UI system that could make onboard maps easier to explore today, while opening the door for future capabilities like better navigation options, nearest-POI logic, location-aware ordering, delivery-zone validation, and ship-area delivery.
Carnival ships are large, multi-deck environments with restaurants, bars, theaters, pools, shops, cabins, guest services, elevators, stairwells, and open-deck spaces spread across different layouts.
A guest may know they want to find food, a pool, a bar, a show, a shop, or guest services — but static deck maps make that discovery feel more like looking at a diagram than using a modern product.
The challenge was to turn complex ship layouts into a clearer mobile map experience. The map needed to support exploration, orientation, POIs, categories, labels, search, zones, and future location-aware use cases without overwhelming guests on a small screen.
A useful ship map is not only a visual asset. It is information architecture, visual hierarchy, cartography, data structure, and interaction design working together.
The biggest design challenge was deciding what the map should show at each level of guest intent.
The product needed a progressive reveal system: show less when guests need orientation, then reveal more as they zoom in and look for specific places.
A major part of the work was defining the visual map language across representative decks and zoom levels. Deck 5, Deck 10, and Deck 12 were used to pressure-test different ship environments and make sure the cartography system could work beyond a single idealized deck.
Representative decks
Represented dense indoor guest areas, with multiple venues, corridors, and POIs close together. This helped test label hierarchy, POI density, venue naming, and how much information could appear before the map became visually noisy.
Represented a high-traffic guest deck with pool, food, beverage, and outdoor circulation areas. This helped test landmarks, deck textures, open-air spaces, food and beverage visibility, and how guests might scan a busy area while looking for nearby options.
Represented upper-deck recreational and open-air spaces, where landmarks, pools, activity zones, textures, and environmental details help guests orient themselves through recognizable ship features, not just labels.
Three zoom levels
Shows the full deck shape and major landmarks so guests can understand the deck at a glance.
Shows a closer deck view with major zones, key venues, and primary POIs.
Reveals finer cartographic details such as seating, deck textures, pool areas, furniture patterns, smaller POIs, and environmental details where useful.
Beyond the cartography itself, Ship Maps also needed a mobile UI layer that made the map usable inside the HUB App.
The experience included a Map Mode for visual exploration and a List View for guests who prefer to browse places by category or name. This gave guests two ways to find locations: visually through the deck map, or structurally through searchable lists of venues and amenities.
The UI also accounted for pinch-and-zoom behavior. During map interaction, the experience needed to prioritize the map canvas so guests could move, zoom, and inspect the deck without unnecessary interface clutter. Once interaction stopped, controls and context could return so guests could continue searching, changing decks, opening location details, or switching views.
This helped define Ship Maps as more than a static map replacement. It became a mobile product experience with map exploration, search, list browsing, deck navigation, and interaction states working together.
Some Carnival ship experiences already use zones as part of how areas are understood. Ship Maps needed to account for that existing model instead of relying only on exact locations, deck numbers, or venue names.
Zones can help support orientation and future location-aware use cases, but they also need to be handled carefully so they do not add clutter. The map system needed to support zones alongside decks, POIs, categories, labels, and search.
The Ship Maps direction introduced a stronger foundation for interactive onboard maps.
Moves beyond static deck images toward a scalable, interactive map.
Decks 5, 10, and 12 pressure-tested the system across ship environments.
Progressive detail across Ship Overview, Deck Overview, and Detailed.
Visual and structured ways to find locations.
Clear behavior during and after map interaction.
Venues, icons, labels, and search organized for discovery.
Supports existing zones without adding clutter.
Reveals the right detail at the right zoom level.
Foundation for navigation, nearest-POI, and ship-area delivery.
A visual system for translating static deck maps into clearer onboard map experiences — using color, labels, icons, and POI hierarchy to make different ship areas easier to scan.
Progressive revealI explored how map detail could progressively adapt as guests zoomed in — from full-ship orientation, to deck-level understanding, to detailed POI discovery.
Map UI and interaction statesMap Mode, List View, and pinch-and-zoom interaction states — showing how guests browse, search, and orient across decks and zoom levels.
Ship Maps taught me that maps are not just illustrations. A useful map is a product system.
The hardest decisions were about hierarchy: what guests need to see at .5x, what becomes useful at 1x, what should only appear at 2x, how Map Mode and List View support different guest behaviors, and how zones can support orientation without adding clutter.
The best map experience is not about showing everything. It is about showing the right information at the right level of detail.
A redesign of the onboard Wi-Fi experience guests use to get connected at sea — making it clear how to log in, purchase an internet plan, understand what they're paying for, and manage internet across multiple devices, all on top of a third-party captive-portal platform.
On a cruise there’s no normal cell service, so getting online means buying a Carnival internet plan through iCafe — the captive portal guests hit when they join the ship’s Wi-Fi, run on a third-party vendor platform. It’s also the free doorway into the Carnival HUB App, and since ~90% of guests already use the app, the two experiences are tightly linked.
The legacy experience was off-brand and confusing: folio-only sign-in, an unclear line between free ship-network access and paid internet, too many choices at once, and no way to handle more than one device. The redesign had to help guests get connected fast, understand what they were paying for, and cover up to four devices — all inside a vendor platform, balancing revenue goals with a clean experience.
From the captive-portal landing through sign-in and buying a single plan — with the discount surfaced at checkout.
How a connected guest moves up to a higher plan, with pricing and savings shown before they confirm.
When a plan hits its device limit, guests can see active devices and switch which one is online.