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 type | Product strategy & UX research, Interaction design & prototyping, Usability testing & iteration, Final UI delivery |
|---|---|
| Role | UX/UI Designer |
| Impact | 2000 rides/deliveries completed in first 3 months; Decreased support tickets by 25% |

Berymo: designing for real-world constraints, user behavior, and business model limitations.
Product Challenge
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.

Project Goals
Design a system that:
Prevents failed ride attempts before they happen
Clearly communicates platform constraints
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
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.
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.”
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

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

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

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

🧠 Growth features perform better when they feel like a natural extension of an existing task, rather than a separate promotional action.
Solution
Contextual, Low-Friction Invite Flow
Growth was embedded directly into the ride request experience through a lightweight modal.
Key decisions:
Triggered during an existing flow
Users encounter the invite option while already engaged in requesting a ride.
Avoids promotional tone
The feature feels like a utility, not an advertisement.
Reduces cognitive load
Minimal UI, clear actions, no competing distractions.

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
Key Takeaways
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.