Michael Haffenden

UX Design Digital Marketing Research AI Prototyping

Designing and building meaningful digital experiences that connect people, solve problems and drive results.

  1. Real problem
  2. Research
  3. Design
  4. Prototype
  5. Real feedback
  6. Iteration

Selected work

Five projects spanning usability research, product design, AI prototyping, digital strategy, and social content.

UX research · Service design

Booking Friction at Ford Salon

Testing revealed that every participant abandoned booking when asked to provide a credit card before trust had been established.

  • 5 participants
  • Existing booking flow
  • Prototype validation

Challenge

The salon needed a way to protect against no-shows, but requiring a credit card during online booking created significant friction. The challenge was finding a way to meet the business need without creating a barrier that caused new clients to abandon their booking.

Research

Moderated usability testing with 5 participants (ages 35–55) booking a haircut online on the live site.

Insight

Participants did not object to the salon itself. They stopped because the upfront card requirement appeared before enough trust had been established.

Business constraint

Mandatory cards help reduce no-shows and protect revenue. Removing the requirement entirely could increase cancellations. The redesign had to respect both sides.

Solution

Remove the card requirement for first appointments, then require a card on file for returning clients—building trust first while preserving protection against no-shows.

Validation

Existing flow 5/5 abandoned

Mandatory upfront card. Abandonment at payment.

Simplified prototype 5/5 completed

Lower first-visit friction. No abandonment observed.

Simplified first-visit flow

No card required up front. Payment due at the appointment. 5/5 completed.

Simplified booking: select or add services
Services Choose a service and continue.
Simplified booking: pick a date and time
Date & time Available slots for the selected service.
Simplified booking: enter details and book without a card
Confirm Contact details only—no card asked.
Simplified booking: confirmation with payment due at appointment
Booked Payment due at the appointment.

What I’d test next

  1. Pilot the first-visit flow Test the revised experience with new bookers on the live site.
  2. Run an A/B test Compare it against the current mandatory-card path.
  3. Measure both outcomes Track booking completion and no-show rates together.

Reflection

Good UX here wasn’t “remove the friction.” It was finding the smallest change that helped users finish while still protecting the business.

Coach Me home screen with snap-your-food prompt, daily reflection, and calorie plan
Product · AI companion

Wellness App

Designing an AI-assisted wellness experience around one user’s real daily habits.

Designed and iterated with one primary user who had experience with Formula. She found the AI camera, calorie estimates, and macro breakdown easier to use and continued using the app beyond testing.

  • 1 primary user
  • Multiple iterations
  • AI meal recognition
  • Live PWA

Tools: HTML/CSS/JS · PWA · AI meal vision · Netlify

Challenge

Could I build a wellness app comparable in quality to an established product, while making it easier and more personalized for a real user? The challenge was turning her feedback into a simpler experience while exploring how AI could make everyday tracking easier and more useful.

Research

Primary user: Pelma, an experienced Formula user who found calorie tracking overwhelming and frustrating. She used this product over multiple iterations, compared it against her existing routine, and her feedback directly shaped what shipped next.

The experience

The product journey in four moves.

  1. Personalize the plan Learn goals, routines, and preferences.
  2. Log food with less effort Photograph meals and confirm the AI estimate.
  3. Adapt throughout the day Calories, movement, and suggestions update together.
  4. Receive supportive coaching Daily insights reinforce progress without guilt.

Screens

Each screen does one job in that journey.

Coach Me onboarding welcome screen
Onboarding Learns goals and preferences before setting a wellness plan.
Personalized wellness plan with food style, movement, daily targets, and focus
Your plan Starting targets for food, movement, calories, protein, and water.
Snap your food screen ready to open the camera
Snap food Open the camera to log a meal with AI.
Meal detail with nutrition breakdown
Meal details Calories and nutrition breakdown before logging.
Daily dashboard with calories, macros, water, and snap food actions
Dashboard Calories, macros, water, and quick actions in one view.
AI coach insights screen
Daily insights Personalized AI coaching with optional voice playback for encouragement or warnings that would make or break daily goals.
Movement tracking with mood and energy plan
Activity tracking Exercise adjusts the daily calorie budget without shame language.
Weekly progress and wellness score
Progress Trends, weekly score, and gentle check-ins.

Validation

The primary user tested the app alongside Formula and preferred this app’s simpler experience, particularly its meal recognition and presentation of estimated calories and macros. She continued using it consistently as part of her wellness routine and made progress toward her personal goals, including weight loss.

Reflection

This project reinforced that wellness products are not only about tracking data. They also need to reduce effort, support motivation, and adapt to how people actually build habits.

Client work · Lead system

Real Estate Lead Generation System

A brokerage-compliant lead system for a court-ordered-sales and foreclosure offer: Meta ad → landing page → form → Lofty CRM → realtor follow-up.

  • Live paid campaign
  • 103 views on CA$18.66
  • Two leads, realtor handoff
  • Brokerage-compliant messaging
Kelowna Foreclosures desktop hero with lead form and current-list CTA
Landing page Conversion-focused desktop experience for court-ordered sale alerts.

The landing page is one piece of a live system: paid traffic, intake, CRM routing, and realtor follow-up.

Challenge

A local realtor needed qualified buyer leads without a working intake path. The challenge was to build a brokerage-compliant system that could take a court-ordered-sales and foreclosure offer from first click through capture, CRM routing, and realtor follow-up.

Insight

People researching court-ordered sales may already feel uncertain, so the experience needed to be informative and reassuring without feeling overly sales-driven. Because real estate is a personal service, the tone also needed to remain consistent from the first ad through the landing page, CRM follow-up, and direct conversation with the realtor.

The most emotionally compelling version of the message—a bargain—was not available. Brokerage rules meant the offer had to promise help and access, not a deal. That made the copy less exciting, but it was the constraint the work had to live inside.

Ongoing client conversations helped refine the terminology, tone, and sales approach across each touchpoint, creating an experience that felt knowledgeable, neutral, and trustworthy.

System flow

  1. Meta ad
  2. Landing page
  3. Short form
  4. Lofty CRM
  5. Automated email
  6. Realtor follow-up

Key decisions

Sensitive category, neutral tone

People researching foreclosures or court-ordered sales may already feel uncertain.

Used clear, reassuring language instead of urgency-heavy or overly promotional messaging.

One voice across the journey

Real estate is a personal service, so the experience needed to feel consistent from first click to direct follow-up.

Aligned the ad, landing page, automated email, and realtor messaging around the same tone and terminology.

Lower friction at first contact

A long form would ask too much too early.

Kept the initial inquiry to essential fields, with qualification continuing through follow-up.

Message continuity from ad to page

Paid traffic works better when the landing experience matches what the user clicked.

Kept campaign messaging, terminology, and visual direction consistent between Meta and the landing page.

Project scope

The landing page was one component. The work was the system around it: message, compliance, routing, launch, and measurement.

  • Client discovery and positioning
  • Messaging strategy for court-ordered sales
  • Brand voice across the lead journey
  • UX for a short, high-intent lead form
  • Responsive landing page
  • Lofty CRM integration and lead routing
  • Automated follow-up
  • Advertising compliance considerations
  • Meta campaign launch
  • Vercel deployment, UTM tracking, and early performance review

Outcome

I built and launched a brokerage-compliant lead system for a court-ordered-sales and foreclosure offer: Meta ad → landing page → form → Lofty CRM → realtor follow-up.

CA$18.66 in spend produced 103 landing-page views—about CA$0.18 per view—and two form leads. Both leads were passed to the realtor’s CRM and received an initial follow-up with a list of foreclosure properties.

Reflection

This project showed that I can take a focused business offer from idea to a live lead-generation system: shape the message, build the landing page, connect the CRM workflow, launch paid traffic, and measure the early results.

“Foreclosure” was an effective attention hook for the broader court-ordered-sales offer, generating efficient traffic and two real inquiries on a small test budget. The system worked from ad click through to realtor handoff.

Chasing Rainbows landing hero with friends overlooking Kelowna under a rainbow
Product prototype · Community

Chasing Rainbows

Turning Kelowna Into a Queer Treasure Hunt

A location-based community experience that uses hidden treasure, local destinations, rewards, and playful discovery to give LGBTQ+ people more reasons to explore their city and participate in something shared.

The concept grew from conversations with 11 members of Kelowna’s LGBTQ+ community about connection, fragmentation, and belonging. Early field testing showed particular enthusiasm for the treasure-hunt mechanic, helping shift the experience toward a simple question: where’s the next one?

Further testing will explore whether that curiosity and shared participation can translate into a stronger sense of connection to the local community.

  • 11 community interviews
  • 1 initial field test
  • Interactive prototype

Tools: React · TypeScript · Vite · Tailwind · Supabase

Challenge

Local LGBTQ+ community members described fragmented social circles, limited year-round engagement beyond Pride, and a desire for more ways to connect through shared experiences.

Research

11 interviews with local LGBTQ+ community members

Fragmentation

Existing social circles could feel difficult to enter.

Low-pressure participation

People wanted ways to take part without forced interaction.

Shared participation

Connection was often described through doing things together, showing up, mutual support, and chosen family.

Insight

How might we create low-pressure ways for LGBTQ+ people to explore Kelowna and feel more connected to their community?

Solution

Chasing Rainbows turns Kelowna into a community treasure hunt.

Players discover hidden treasure throughout the city, visit local places, collect rewards, and share in an experience they can participate in alone or with others.

Experience principles

Curiosity over obligation

Give people a reason to wonder, “Where’s the next one?”

Shared presence without forced interaction

Participate independently, with friends, or alongside other Chasers.

Discovery that feels rewarding

Make exploring familiar and unexpected places feel playful and worthwhile.

Product mechanics

  • Location-based treasure hunts
  • Hidden treasure throughout Kelowna
  • Collectible rewards
  • Live presence of other Chasers
  • Community chat
  • Storybook-inspired visual design

Product flow

Map → Choose treasure → Follow the clues → Find it → Unlock the reward → Keep chasing

Chasing Rainbows map and welcome home screen
Map See nearby treasure and choose a hunt.
Treasure list across Kelowna
Choose treasure Pick something worth chasing.
Treasure brief with location and clue
Follow the clues Use the clues to make your way to the hidden location.
Follow the clues map to the treasure
Find it Arrive at the location and discover what’s hidden.
Unlocked reward and collectible keepsake
Unlock the reward Reveal the featured reward and collect bonus keepsakes.
Me tab with profile and scrapbook of finds
Keep chasing Add it to your scrapbook and choose what to find next.

Field-test findings

One participant completed the initial field test, separate from the 11 community interviews that shaped the concept.

The participant enjoyed the treasure-hunt experience, responded strongly to the rewards, and wanted to keep discovering more. They said they would recommend the experience to others with similar interests.

Some clues successfully led the participant to the general area but were not precise enough to make the final discovery satisfying.

Clues became more specific and rewards became more meaningful, but the larger learning was about the product itself. The participant wasn’t motivated by completing a walk or checking off a quest. The motivation was finding something.

The motivation was not the walk itself. It was the feeling of finding something.

That shifted the concept toward making discovery the core experience: more individual treasures across the city, stronger visual rewards, and a repeated loop built around the question, “Where’s the next one?”

Because this insight comes from a single pilot, it remains an early product hypothesis rather than proof that the experience improves community connection.

What I’d test next

Move from “one person had fun” to repeatable evidence across different users.

  1. Clue clarity Can people understand the clues without help?
  2. Completion Do they successfully find the treasure?
  3. Reward value Does the reward feel worth the effort?
  4. Continued participation Do they want to find another one?
  5. Connection Do they feel more connected to the local LGBTQ+ community afterward?
  6. Reach Does the experience work for people outside my immediate social circle?

Reflection

Chasing Rainbows has strong concept appeal and a distinctive visual world, but it is still an early-stage prototype with limited field evidence. Community interviews shaped the original direction, while the first field test revealed that the strongest motivation was not simply going somewhere or completing a quest. It was the feeling of discovering something.

That insight shifted the product toward clearer clues, stronger rewards, and more individual treasures across the city. The next step is broader field testing to see whether different users can complete the experience independently, want to keep searching, and report a meaningful change in how connected or engaged they feel.

Polished Instagram concept for McCurdy Bowling Centre Wednesday DJ Party Night
Social media · Self-initiated concept

McCurdy Bowling Centre — Social Media Concept

A self-initiated Instagram campaign concept promoting a fictional Wednesday DJ Bowling Night at McCurdy Bowling Centre. The goal was to create an exciting, easy-to-understand post that encourages local audiences to book a lane.

This is a self-initiated portfolio concept. It was not commissioned or published by McCurdy Bowling Centre.

  • Canva
  • AI-assisted image
  • Instagram 4:5

My role: Creative direction, social-media strategy, copywriting, layout refinement, typography, branding, and final production

Draft to final

Original AI-assisted Canva draft for Wednesday DJ Party Night
Original AI-assisted Canva draft The initial concept established the event’s neon bowling imagery, red-and-black palette, and basic information hierarchy. However, it lacked strong branding, specific experience details, and a clear booking-focused call to action.
Polished Canva version with McCurdy branding and Book Your Lane
My polished version Stronger hierarchy, McCurdy logo and brand colours, “Lights • Lasers • Music,” and a booking-focused CTA.

What I refined in Canva

  • Strengthening the headline and visual hierarchy
  • Adding McCurdy’s logo and brand colours
  • Highlighting “Lights • Lasers • Music”
  • Changing the CTA from “Grab Your Crew” to “Book Your Lane”
  • Improving typography, spacing, readability, and time formatting
  • Balancing the promotional copy with the event photography

Outcome

I refined the original draft into an ad that feels aligned with McCurdy’s energetic, approachable brand voice while being more conversion-focused. The final design combines bold event imagery and playful messaging with clear details, recognizable branding, and a direct “Book Your Lane” call to action.

Portrait of Michael Haffenden in his workspace

About

I’m Michael. I enjoy solving real problems. I talk to users, build something, test it, and iterate. Based in Kelowna, with a background in brand ambassadorship and client-facing work that keeps me focused on how people actually feel in the moment.

Let’s talk

Open to client experience, marketing, administrative, and digital roles in Kelowna or remotely.