Khang Hy
All work
End-to-end buildMobility · Cambodia

A ride-hailing MVP for Cambodia, across rider, driver and admin.

I owned the design, the product logic and the build: directing two contract developers, external QC and an AI agent in Cursor, and checking every build against the business rules I wrote.

In testing: Android internal, iOS TestFlight

Btaxi isn't public yet, so there's no usage data here. Success at this stage means both builds holding up on real devices in Cambodia.

Illustration: rider, driver and admin views with the coupon rule
Role
Product designer & builder
Team
2 contract devs + external QC
Surfaces
Android, iOS, admin web
Year
2026
Status
In testing
The brief

One market. Three apps. Local constraints.

The product had to work for locals, expats and tourists at the same time, on a startup budget.

  • 01Three apps that must stay in syncRider, driver and admin all have to agree, or riders stop trusting the system.
  • 02No budget for custom infrastructureSo I reused an existing ride-booking and GPS platform, and spent design time on the parts that needed local thinking.
  • 03The payment people expect isn't availableABA Bank integration wasn't legally possible at MVP stage, even though it's how most people expect to pay in Cambodia.
Android, iOS, admin web
Rider app · Android and iOS
01 / 03

Booking that feels local.

A local tuk-tuk icon instead of a generic car, so the product reads as Cambodian, not a clone.

The payment workaround

No bank integration? Design a deposit flow admins can trust.

A semi-automated deposit with manual admin approval, so drivers can top up before a bank integration is legally possible.

Expected: in-app bank paymentNot legally possible at MVP stage.
  1. DriverTops up through ABA Bank in the app
  2. BankConfirms instantly
  3. ResultBalance topped up
Shipped: QR top-up with approvalWorking payment flow without the legal blocker.
  1. DriverRequests a top-up in the app
  2. DriverTransfers by QR, with their phone number in the note
  3. AdminMatches the transfer and approves on the web, within 4 hours
  4. ResultBalance topped up
How I build

I own the layer above the code.

I don't read or write code. I define the spec and the rules, direct the build, and QA the result against them.

  1. 01SpecI define what gets built: the screens, flows and states for all three apps.
  2. 02Business rulesPricing, payments and permissions written down as rules the build has to follow.
  3. 03Orchestrate buildThe contract devs and an AI agent in Cursor build against the spec. I direct the work.
  4. 04Agent-assisted QAI test each build against my rules, with an AI agent helping to check behaviour.
  5. 05FixAnything that breaks the spec goes back with the correct logic written out.
  6. 06HandoffThe build moves on only when it matches the rules.
Caught in QA

A coupon that replaced the fare.

Because I owned the pricing rules, I could see the build breaking them, write out the correct logic and get it fixed before handoff.

Build as deliveredWhat the spec did not allow.
  1. InputBase fare
  2. BugCoupon overwrites the base fare
  3. OutputWrong final price
After the fix, per the ruleWhat the pricing rule says.
  1. InputBase fare
  2. RuleCoupon applied to the base fare
  3. OutputCorrect final price
What Btaxi taught me

The spec is the product.

The devs and the AI agent only build what I actually write down. When I wrote the logic tightly, the build came back clean. When I left a rule a little fuzzy, QA is where it came back to bite me. So writing the rules is the real work, not the warm-up.

Lessons
  • Invest selectivelyReusing infrastructure freed design time for the parts that build local trust.
  • Script is a technical problemKhmer support meant testing layout and rendering on budget Android, not just translating.
  • Admin risk is product riskThe biggest blocker wasn't design or code. It was the Apple Developer account and the client's paperwork.
Want something like this?

A multi-app MVP, scoped piece by piece.

Three connected apps are priced by what each one needs. Pick the pieces, and I send a written proposal within 48 hours of our call.

A build like this: multi-app, priced after a scoping call

More work

All work
Start a conversation

Have an app idea and a messy brief? Let’s sort out the rules first.