The brief
Hound’s founder didn’t want another Uber clone. The goal was a new category of EV mobility — one where rides aren’t a commodity, they’re a surface for hyperlocal commerce, starting from a single depot in Kakkanad, Kochi.
For a pre-PMF company that needed a production platform (not a prototype), the surface area was unusually wide on day one: rider app, driver app, a fleet-management backend, and a GST-compliant billing engine that could handle both B2C walk-up bookings and B2B corporate invoicing.
What we built
Rider app — Android live, iOS-ready




Phone-OTP onboarding, four booking flows (point-to-point, airport, hourly rentals, outstation), transparent three-tier EV pricing (ECO / ECO+ / ECO Elite), location services with reverse geocoding, live weather + AQI on the home screen, and FCM push notifications. Built as a single React + TypeScript codebase deployed to web and Android via Capacitor, with iOS bundles ready to ship.
Driver app — Android
A separate Capacitor app tuned for one-handed use in a moving vehicle: OTP auth, role-application flow, terms acceptance, real-time ride assignment, and a dashboard that walks a driver through the ten-step lifecycle of each trip (en route → arrive pickup → start → arrive drop → complete).
Fleet-management backend
Django, PostgreSQL, Redis, Celery, Docker-composed across dev / staging / prod. Four roles modeled from day one (admin, manager, driver, customer), vehicle telemetry and odometer readings, driver onboarding with approval workflow, audit logging, seed scripts so the founder could demo a realistic fleet from the first week, and a Swagger API fronting the whole thing.
Admin console
Web interface for managers to approve drivers, assign vehicles, oversee active trips, and run the fleet against real bookings.
Engineering worth calling out
A fare engine built for EV economics, not Uber economics. Four trip sub-types (P2P, Airport, Hourly, Outstation) each with their own route formulas — including a 5 km “dead mileage” waiver for pickups near the depot, EV-aware toll rates via Google Routes API, and a package-based pricing model where overage is charged on whichever is higher (distance or time) rather than both. Fully GST-compliant: CGST + SGST for intrastate trips, IGST when a trip crosses state lines, automatic detection via pickup/drop coordinates.
Defensive billing. Every B2C trip generates an advance invoice at booking and an adjustment invoice at completion — only if the actual trip exceeded the estimate. Both fares are computed from the same formula so there’s no component-level drift between estimate and actuals. B2B clients get consolidated monthly billing through the same engine.
A trip state machine, not a CRUD app. Trips move through REQUESTED → PLANNED → SCHEDULED → CONFIRMED → IN_PROGRESS → COMPLETED, with cancel / reject / no-show branches, role-filtered creation rules, and conflict detection across time (lead time, max advance), overlap (driver or vehicle already booked), capacity, and lifecycle (invalid transitions). Route calculations are cached for 30 days to keep the Google Routes bill down without sacrificing accuracy.
One codebase, three platforms. React + TypeScript + Capacitor for web, Android, and iOS — with platform-aware token storage (Capacitor Secure Storage on native, httpOnly cookies on web) and Capacitor plugins dynamically imported so the web build doesn’t pull in native code.
How we approached it
- Scope locked before code. The EV-tier model (ECO / ECO+ / ECO Elite) and trip sub-types were tested with early riders in Kochi before we committed to a data model. The taxonomy drives almost every downstream decision — pricing, the booking UI, the state machine, invoicing — so getting it wrong once would have been expensive.
- Production-grade ops from week one. Docker-compose environments for dev / staging / prod, a staging server on
staging.houndmobility.in, seed scripts for demo data, and a test suite covering API integration, model behavior, and performance. A pre-PMF founder shouldn’t be debugging his own infrastructure. - Surge pricing built, surge pricing disabled. The rate card, multipliers, and activation flags are in the database and wired through the fare engine — they’re just set to 1.0x and
is_surge_active = false. When the founder is ready to flip the switch, the work is already done.
Where it is now
Live on the Play Store and at houndmobility.in. The platform is in active release with the founder’s team — ride volume, driver onboarding, and fleet expansion are all ongoing.
The team
A product manager and four engineers from MakaraTech, across backend, mobile, and web.