Kyle WongProduct & UX Designer · Data Visualization

UX/UI Designer · Berymo · Product Strategy

Designing for real-world constraints, user behavior, and business model limitations

Berymo was a seed-stage rideshare startup rethinking the traditional model by offering free rides subsidized through restaurant partnerships. Instead of relying on driver income or rider payments, the platform aimed to connect riders, drivers, and local businesses into a shared ecosystem.

This created a fundamentally different product challenge:

  • Less financial incentives to drive growth (No promotional sign-up offers for new users)
  • Strict geographic constraints due to service coverage
  • A high risk of failed ride attempts and user frustration

In the first 3 months post-launch:

  • 2,000 rides and deliveries completed
  • 25% reduction in support tickets
Project typeProduct strategy & UX research, Interaction design & prototyping, Usability testing & iteration, Final UI delivery
RoleUX/UI Designer
Impact2000 rides/deliveries completed in first 3 months; Decreased support tickets by 25%
Berymo mobile app screens showing the rideshare experience

Berymo: designing for real-world constraints, user behavior, and business model limitations.

Berymo’s business model introduced two critical risks:

1. Ride Failure Risk

Users frequently attempted to request rides outside of serviceable areas, leading to failed requests, confusion, and support overhead.

2. Growth Without Incentives

Unlike Uber or Lyft, Berymo could not rely on referral bonuses or financial rewards to drive user acquisition.

Berymo solution screens showing product flow improvements

Project Goals

Design a system that:

1

Prevents failed ride attempts before they happen

2

Clearly communicates platform constraints

3

Encourages organic user growth without feeling promotional

Problem Statement 1

How might we prevent failed ride attempts caused by invisible system constraints?

Challenge: Reducing Ride Failure Through System Transparency

Users were able to select pickup and destination points that were outside Berymo’s service area. These constraints were invisible until after they attempted to request a ride.

This resulted in:

  • Confusion about why requests failed
  • Increased support tickets
  • Friction during a critical moment in the user journey

👉 Key Insight: I identified that the issue wasn’t just error messaging, but a lack of system visibility. Users didn’t understand the rules of the system before taking action.

I redesigned the experience to surface constraints in real time during map interaction using geofencing.

Solution: Geofenced, Contextual Error States

1

Errors displayed at the source of interaction

Errors appear directly on the map at the user’s location or selected pickup point, rather than as detached alerts.

2

Clear, human-readable messaging

Messages explain:

  • what went wrong
  • why it happened
  • how to fix it

Example:

  • “We are not in Mountain View, CA yet - but we are launching in 19 days and can let you know…”
  • “Pickup location is too far. Try a different location within 8 miles.”
3

Actionable next steps

Every error guides users toward resolution:

  • adjust location
  • subscribe for availability updates

Impact

This shifted the experience from reactive error handling → proactive guidance.

  • Reduced failed ride attempts
  • Contributed to a 25% decrease in support tickets
  • Increased user confidence in how the system works
Berymo geofenced error states that explain service area constraints

Problem Statement 2

How might we drive user growth through behavior instead of financial incentives?

Challenge: Driving Growth Without Incentives

Berymo relied on users inviting others to grow the platform, but could not offer referral bonuses.

This introduced a behavioral problem: Users are highly resistant to anything that feels promotional or spam-driven.

👉 Key Insight: More visibility does not equal more engagement. Highly visible entry points (like home screen promotions) reduced trust and felt intrusive.

Exploration 1: Entry point from home screen

Hypothesis: High visibility would increase engagement

Result:

  • Felt promotional without incentives
  • Reduced trust
  • Risked user annoyance
Berymo invite exploration from the home screen

Exploration 2: Entry point from ride request screen

Hypothesis: Contextual placement would improve usage

Result:

  • Too many competing actions
  • High misclick rate
  • Increased cognitive load
Berymo invite exploration from the ride request screen

Exploration 3: Contextual Modal During Ride Flow (Selected)

Hypothesis: Introducing invites during an active task would feel more natural

Result:

  • High task completion rate
  • Low confusion
  • Felt like a continuation of the ride experience
Berymo selected invite exploration using a contextual modal during the ride flow
🧠 Growth features perform better when they feel like a natural extension of an existing task, rather than a separate promotional action.

Contextual, Low-Friction Invite Flow

Growth was embedded directly into the ride request experience through a lightweight modal.

Key decisions:

1

Triggered during an existing flow

Users encounter the invite option while already engaged in requesting a ride.

2

Avoids promotional tone

The feature feels like a utility, not an advertisement.

3

Reduces cognitive load

Minimal UI, clear actions, no competing distractions.

Berymo growth feature flow showing clear invite actions and contact selection

Replaced low-visibility text links with clear action buttons to reduce decision friction Simplified the contact selection experience. Used visual cues (button change) to signal progression through the flow

1. Make System Constraints Visible Early

Users perform better when they understand the rules before taking action, not after failing.

2. Growth Should Feel Like Behavior, Not Promotion

Embedding growth into natural user flows is more effective than forcing visibility.

3. Reduce Failure, Not Just Friction

Eliminating failure states has a greater impact than optimizing already-successful flows.

Final Reflection

This project reinforced a key principle in product design:

The most impactful improvements don’t come from adding features, but from removing uncertainty.

By focusing on clarity, system transparency, and behavioral design, I helped transform a fragile early-stage product into a more intuitive and scalable platform.