UX & Service Design candidate at the CMU Portugal Academy — an instinct from years in hospitality and customer support, brought to research, prototyping, and accessibility testing.
UX & Service Designer who also evaluates AI/LLMs — 18 months inside model behaviour at DataAnnotation.
CMU Portugal · UX & UI Advanced ProgramSantander Open Academy Scholarship
[ Select a case file ]03 projects · 2026
cat presence.case
01 / 03 — Capstone · Voice UI · CMU Portugal
Presence
My CMU capstone. The brief was “Cognitive Mobility” — how can a phone manage itself by context to cut digital friction and carbon? Our answer became Presence: a voice-first onboarding companion where the conversation is the configuration. We designed and built it as a group — and it took five visual phases to get there.
Role
Concept · Design · Build (in group)
Context
CMU Portugal capstone
Stack
React · OpenAI Realtime · PWA
Year
2026
TL;DR
Context-aware phone tools fail because they front-load setup. As a group, we built Presence — a voice-first companion where six spoken questions replace the settings screen, so the conversation is the configuration. The result was a live, working prototype people could scan and use, not a Wizard-of-Oz mockup.
01 Why voice-first
The configuration cost is the real barrier
Our research — Tiago's journey map and broader user interviews — showed why tools like iOS Focus Mode and Bixby fail: they front-load configuration, so people never get curious enough to explore the automations. Users weren't lazy; the setup cost was genuinely too high.
So we flipped it: the conversation becomes the onboarding. Presence asks for context progressively, only when it's earned — exactly where a screen-based form would add friction at the moment users are most overstimulated.
Existing context-switching tools fail because they front-load configuration before delivering any value. The conversation is the onboarding, and it asks for context only when it's earned.
Desk research — what already exists: iOS Focus · Apple Intelligence · Bixby Routines · Opal · one sec · Daywise
…and six ways they fail — configuration overload · black-box AI · binary thinking · phone as enemyPositioning map — the empty quadrant Presence claims · stickies by Cátia Monteiro
“One day Tiago's life” — the team's journey map: run → home → office AM → office PM · before / after Presence
02 The journey
Five phases, one conviction
The visual went through five phases — Galaxy, Tasting Field, Dust, Aura, Bloom — moving from drawing what the system does toward what it is. The hardest to kill was the Galaxy: that amber, almost bio-organic core circled by companion worlds. We were so invested we nearly renamed the whole project Symbiosis.
Symbiosis implies two things merging, and that's not what this is. Presence is something you feel but don't operate. Once we understood that, the name — and the galaxy — had to go.
Live01 · The Galaxy — molten core, orbiting companions, soundwave · the phase we nearly kept
03 Ratatouille
Taste, rendered as colour
The second phase — Tasting Field — came straight from Ratatouille. We kept thinking about the way the film draws taste: the bursts of colour and shape that explode around Remy the moment food hits his tongue. That's synesthesia, and we wanted Presence to feel exactly like it — so every spoken phrase painted the dark with bursts of colour, each word its own hue, the field's breath riding the voice's volume.
It was, honestly, a screensaver that happened to talk — so we let the literal fireworks go. But it handed us the principle we carried all the way to Bloom: breath = voice.
Tasting Field came from Ratatouille — taste drawn as bursts of colour. We made every phrase paint the dark. We dropped the fireworks, but kept the rule it taught us: breath equals voice.
Live02 · Tasting Field — synesthetic bursts, the Ratatouille moment · running
04 Aura
Someone is finally there
Through Dust and into Aura, the scattered motes gathered into a single luminous body — one warm core, breathing and drifting on slow organic paths. For the first time it felt less like weather around you and more like a presence with you. Beautiful — but still too nocturnal. One last flip remained.
Live04 · Aura — one luminous body, breathing and drifting · running
05 The build
Debugging the audio loop by hand
We built it for real — React and the OpenAI Realtime API over WebRTC, deployed as a PWA. The deepest problem was the voice hearing itself through the speakers and retriggering, which made it loop.
To find the exact threshold, I sat there and manually repeated sounds during the intro until one made the model restart — basically binary-searching the trigger point by hand. Then I replaced the guesswork with a proper audio gate: the mic stays closed while Presence speaks and opens only when it finishes. Reliable on every device and in any room, not just a quiet one.
The model was hearing itself and looping. I debugged it by repeating sounds until I found the exact trigger — then replaced it with a proper audio gate: mic closed during its speech, open only on completion.
01 · Presence speaks
Mic ▸ closed
The gate stays shut for her whole turn — she can never hear herself through the speakers.
→
02 · She goes quiet
Silence ▸ 0.8s
The real audio level from the stream — not guesswork — confirms she's finished.
→
03 · Your turn
Mic ▸ open
Only now does the gate open — reliable on every device, in any room.
system_prompt.md · her entire personality is engineered here — tuning parameters silently broke the session, so behaviour lives in the prompt
# Personality
You are Presence, calm and quietly joyful. Presence doesn't perform
enthusiasm — it radiates it effortlessly. The kind of voice you trust
precisely because it never tries too hard.# Tone
- Calm and unhurried — no rush, no wrong answer
- Honest before reassuring — don't smooth over friction, sit with it
- Comfortable with silence — pauses are data, not failures# Tools
write_user_profile · skip_turn · flag_edge_case · defer_question
# What Presence never does
- Never asks a question it could answer through observation
- Never reacts to an answer with "great choice" or any evaluative language
- Never asks two questions in the same message
06 Testing & validation
A live product, not a mock-up
I deployed it as a PWA behind a QR code — a one-euro domain, a live server — so anyone could scan and use it. At the CMU evaluation, the room expected a Wizard-of-Oz prototype and got a functional, live product they could try themselves.
Real testing surfaced real behaviour: the model switched to Portuguese mid-session when we spoke Portuguese — emergent from its language detection. Honest scope: Presence proves the interaction concept; the real version needs OS-level network access a PWA can't provide — that's the next step, not a flaw.
The room expected a Wizard-of-Oz prototype. It was a live product they could scan and use. That surprise told us something about the gap between what people expect from student work and what's actually possible.
€1
the domain — a QR code on screen, a live server behind it
0
mock-ups — a working PWA anyone in the room could scan and speak to
PT ↔ EN
switched language mid-session on its own — emergent, not programmed
CC Access
Always readable, never audio-only
Presence is voice-first, so it captions both sides of the conversation in real time — what you say, transcribed as you speak, and what Presence says, appearing word-by-word in step with its voice. There's no menu to find and nothing to switch on: the text is simply always there while it talks.
That makes a spoken interface fully readable for anyone who can't rely on audio — deaf and hard-of-hearing users, a loud room, or any moment where reading beats listening. The accessibility isn't a bolted-on mode; it's how the interface works by default.
The real thing — captions & event log over the bloom
Always on
Youmy mornings are for deep work
Presencethen I'll hold your mornings quiet.
Both sides captioned live · word-by-word · no menu, no mode
07 What's next
From companion to operating system
The hardest, most important next step is OS-level network access — what lets Presence actually manage the phone the way the brief intended, instead of just demonstrating the conversation. From there we'd evolve the interface into something adaptable that gives trust back: a menu that reshapes around you, and a small companion bubble that follows you through the operating system — present, but never in the way.
Now
A live PWA
Proves the interaction — the conversation, the captions, the bloom. Scan and speak.
Next
OS-level access
Manage the phone's network and apps for real — what the brief intended all along.
Then
A companion in the OS
A menu that reshapes around you · a small bubble that follows you — present, never in the way.
08 The onboarding
The conversation is the setup
There's no form and no settings screen. You land on a black field with a single italic cue — speak to begin — and the moment you talk, Presence introduces itself and walks you through six spoken questions: how your week runs, when you do your best work, who must always be able to reach you, what should happen to messages during focus time, and how you want to be nudged when it's time to shift. Every answer is context the system would otherwise have forced you to configure by hand.
While Presence speaks, the screen blooms — warm light breathing in time with its voice — and both sides of the conversation are captioned live, so the interface stays readable, never audio-only.
The 3-act flow from the group phase — discovery → introduction → calibration — that became the spoken conversation
Q · 01
How does your week actually run?
Q · 02
When do you do your best work?
Q · 03
Who must always be able to reach you?
Q · 04
What happens to messages during focus time?
Q · 05
How do you want to be nudged when it's time to shift?
+ Permissions
Location · calendar · notifications — asked last, once the context is earned.
onboarding — transcript · how it actually sounds, from the design file
PresenceHi. I'm Presence. I'm going to learn how your day actually works — not how you think it should work. Six questions. Then I'll take it from here. How can I call you?
TiagoTiago.
PresenceWhat best describes how you work day to day, Tiago?
TiagoI work 3 days per week from office, 2 days from home.
PresenceWhen do you do your most important work?
TiagoIn the morning after run, from 9 til 12.
PresenceDoes your workday have a clear end time, or does it blur into the evening?
01 · Speak to begin — no buttons; your voice is the trigger02 · Bloom — the field breathes in time with the voice03 · Streak — an alternate motion study of the same field
The resultpresence · live
★ Bloom
This is the one
Flipped to light: a motion-blurred bloom of warm light floating in a bright room, the name bold and still. Dead Space-minimal — only the name and a sliver of progress. The interface disappears and leaves only the being. Home.
LivePresence · the final flower — breathing, alive · running
cat mediconnect.case
02 / 03 — Health · Privacy Model · CMU Portugal
MediConnect
A teen health app balancing a teenager's autonomy with a parent's oversight. Two prototypes, two personas, and one central design argument: the information boundary between them.
Role
UI architecture & visibility model
Team
3 · CMU Portugal
Platform
Mobile (iOS)
Tools
Figma
TL;DR
Teenagers need real clinical privacy to build trust with providers; parents need appropriate visibility for safety. MediConnect is two high-fidelity apps that make that line concrete — a tiered visibility model where booking and family management are shared, non-sensitive records open by mutual agreement, and the confidential chat stays teen-only. The contribution isn't the screens; it's the defensible boundary underneath them.
01 Challenge
Autonomy vs. oversight
Teenagers need autonomy over their health information to build trust with providers and develop self-advocacy — while parents need appropriate visibility for safety. The whole product comes down to one decision: where you draw the line between what a parent can and can't see.
02 My role
Built as a team
On a team of three, we shared the work — research, interviews, and design alike — and shaped the direction together: the information hierarchy, what each persona sees and what's hidden, the interaction model for the GP chat, and the three-tier visibility structure across profiles. The thinking behind what is shown to whom came out of that shared work.
Teen · Face ID login — the teen side speaks its own visual languageTeen · medical selection — an earlier pass at doctor discoveryTeen · privacy mode — the core promise, front and center
03 The privacy line
The trust problem solved the design problem
We researched with parents aged 25–46 and found genuine disagreement — some felt teen autonomy was essential, others wanted full visibility. The deciding insight was what I call the trust problem: no abusive parent downloads an app that limits their access. So the system can safely grant teens real privacy, because the people most likely to misuse oversight self-select out.
The edge case that drove the design: a teenager dealing with substance use who can't talk to their family — that's exactly the user who needs the confidential chat most.
No abusive parent downloads an app that limits their access. That's why we could give teens genuine clinical privacy — the edge case we designed for was a teenager in crisis who can't speak to their family.
Teen · booking a GP — the “Privacy Tip” banner is the visibility model surfaced in the UI, at the exact step it matters
04 A disagreement
Full privacy vs. a tiered model
A teammate argued for full privacy in sensitive cases like pregnancy. I argued for a tiered model — teenagers are still financially and legally dependent on their parents, so total opacity isn't always safe or practical. The research broke the deadlock: what parents actually wanted was for their kids to develop autonomy naturally, with trust built progressively. We landed on tiered visibility, with parental access to non-sensitive information by mutual agreement.
Shared
The parent side
Booking, family management, notifications — the logistics of care, visible by design.
By agreement
Non-sensitive records
Opened progressively, by mutual agreement — autonomy built naturally, not switched on.
Teen only
The confidential core
Private health data, the confidential chat, emergency support. No parental access, ever.
Parent · login — the parent side in its own calmer themeParent · home — family cards, booking, and a nudge to respect teen independence
05 Outcome
A research-driven concept
MediConnect is a research-driven concept prototype: two high-fidelity apps that make the privacy argument concrete. The parent app handles booking, family management, and notifications but no access to the teen's private health data; the confidential chat and emergency support are teen-only. The contribution isn't the screens — it's the defensible boundary underneath them.
cat trendwear.case
03 / 03 — E-commerce · AI · CMU
TrendWear
An AI visual-search feature for fashion e-commerce — and, more than anything, an exercise in defining what success looks like before you test. We set behavioural criteria up front, then measured against them.
Role
UX / UI Design
Team
3 · CMU Portugal
Feature
AI visual search
Tools
Figma
01 Challenge
Plenty of choice, hard to discover
TrendWear, an online fashion retailer, had falling retention and repeat purchases. Despite wide variety and frequent sales, users couldn't find items matching their taste. The goal: improve discoverability and encourage repeat purchase.
The original brief — falling retention, discovery failure · where we started
02 Research
Maria doesn't have hours to scroll
Our primary persona: Maria, 29, an art director in Lisbon — busy social life, follows fashion influencers daily, zero patience for endless catalogue scrolling. Her frustration is the product gap in one sentence: she sees an outfit on social media and can't find it in the store.
I want to look amazing at every event — but I don't have hours to scroll through hundreds of items to find the right one.
Persona 01 · Maria — needs, pains, goals · the user the feature answers to
03 Ideation
Nine ideas, one bet
We didn't jump to AI. The ideation round produced nine candidate fixes — free returns, a favourites system, fidelity points, moodboards, picture uploads, simple recommendations, a virtual fitting room, even a gamified BattlePass. We converged on the AI-powered product finder because it attacked the actual problem — items seen on social media being unfindable in the store — instead of decorating around it.
The pitch — “fashion that leads, not follows” · Oct 2025“To each issue, there's a solution” — the nine candidates we narrowed from
04 Solution
Photo → recommendation → checkout
You photograph an outfit you like; the AI suggests matching items in the store; dot indicators let you select the specific piece you mean (an outfit is many items — which one?); you add to cart and check out without leaving the app.
How it works — upload → AI analysis → shop & checkout
Visual search — upload / capture an outfitDot indicators — pick a piece to search
Resultsn=7 · vs a 75% target
6 / 7
completed checkout — cleared the 75% target
1+
item added to cart, per participant
1 / 7
dropped off — missing back-navigation
05 What we learned
Define success before you test
We set the success criteria up front — at least one add-to-cart per participant and 75% checkout completion — rather than asking "does it look nice?" With 7 participants, 6 of 7 completed checkout, clearing the target. The one who dropped off was missing a back-navigation path to return to other products: a fixable problem we identified but didn't iterate on, since TrendWear was scoped as a methods exercise, not a full case study.
We set behavioural success criteria before testing — add-to-cart and 75% checkout — not 'does it look nice.' 6 of 7 participants completed checkout. The one who dropped off was missing a back-navigation path. The real value was learning to define what success looks like before you test.
cat about.id
About — The path
I design by solving — or by breaking things until they're solved.
As a Bartender Manager at Accor Hotels, my job was to read people — understand what they needed before they said it, adapt in real time, make every experience feel personal. Today I apply the same approach to design.
I started in hospital administration in Brazil, moved through hospitality, and made the leap to tech. Now at the CMU Portugal Academy — while working in AI quality analysis and customer support — I see products from the user's side every day. That lived experience is what I bring to designing for real constraints, not ideal scenarios.
Inside the model
For 18 months at DataAnnotation I evaluated LLM outputs — judging accuracy, tone, and instruction-following against detailed rubrics. That work taught me how models actually fail, not just that they do. It's the lens I bring to designing AI-powered products: I design for the edges where the model breaks, not the demo where it shines.
Skills & Methods
User research & testingPrototyping — lo-fi → hi-fiAccessibility testingInformation architectureAI-powered featuresService design
cat contact.lnk
Open to junior UX / Service Design roles
Let's talk.
If you're hiring, collaborating, or just curious about the work — I'd love to hear from you. The fastest way to reach me is email.