Feature-first architecture
The Flutter codebase is organised by feature — account, search, tutor, transaction, dashboard — rather than by layer, so each screen's pages, models, and state sit together and the app stays navigable as features grow.
Case · Mobile · Web · EdTech
The Flutter and Vue front end for a Malaysian tutor marketplace that reached 15,000+ members (2021) across web, iOS, and Android.
A two-sided tutor marketplace lives or dies on its phone experience: discovery, scheduling, and payment all have to feel effortless.
Front-end engineer (freelance) — Flutter app + Vue 2 web
Shipped the iOS + Android app and the web front end for a platform that reached 15,000+ members and 14,000+ transactions across 20+ countries (per 2021 press).
MyClaaz is a Malaysian EdTech marketplace that connects students with tutors and trainers, founded by Islamic-finance scholar Dr Zaharuddin Abdul Rahman; the platform was a recipient of Cradle Fund start-up assistance. As the freelance front-end engineer, I built the client side — the Flutter app for iOS and Android, and the Vue 2 web front end — against an API owned by the backend developer. A marketplace only works if finding a tutor, booking a slot, and paying all feel simple on a phone, so the front end had to carry discovery, scheduling, media, and payments without friction.
The Flutter codebase is organised by feature — account, search, tutor, transaction, dashboard — rather than by layer, so each screen's pages, models, and state sit together and the app stays navigable as features grow.
Shimmer skeletons for slow connections, image compression before upload, hand-rolled localisation, and Sentry in production so real crashes were visible — choices for an app used in the field across 20+ countries.
Provider and RxDart drive the UI from observable stores, so search, filters, and dashboards update from data changes instead of imperative screen refreshes.
A cross-platform marketplace app and web front end that real tutors and students used — 15,000+ members and 14,000+ transactions across 20+ countries, per 2021 press. It was my first production Flutter app, and the reason I care about discovery, scheduling, and payment flows feeling effortless.