Skip to content

Projects

Featured work

Production applications I've built and shipped. Each project links to the live site — click through to see the work in action.

Project Highlights

Property Scout Platform

Led the architectural migration of a property listing and search platform to Next.js with SSR, achieving a 25% performance improvement. Features advanced filtering, saved searches, and a design system of 40+ components shared across the organization.

Key Achievements

  • Improved Lighthouse performance score from 62 to 87 (+25%)
  • Reduced Largest Contentful Paint (LCP) from 3.8s to 1.9s
  • Built 40+ reusable components, cutting UI dev time by 30%
  • Automated performance budgets in CI/CD with Lighthouse CI

Case Study

Challenge: The legacy SPA suffered from slow initial loads and poor SEO. Users abandoned property searches when pages took over 4 seconds to render. The existing jQuery codebase made it impossible to implement server-side rendering without a full rewrite.
Approach: Migrated to Next.js with a hybrid rendering strategy — SSR for search results and listing pages (SEO-critical), static generation for marketing pages. Implemented incremental adoption by wrapping legacy components in React islands. Used code splitting and dynamic imports to keep bundle size manageable during the transition.
Lessons Learned: Incremental migration beats big-bang rewrites. By introducing React alongside jQuery first, we could ship value immediately while reducing risk. The key insight was identifying which pages needed SSR (search results) vs. which could stay client-rendered (user dashboards).
Next.jsTypeScriptTailwind CSSSSRDesign System

Oway Travel & Tour

Built the frontend for Myanmar's leading online travel agency — a React SPA handling flight, hotel, and package bookings. Implemented multi-step checkout, i18n (English/Burmese), and an optimized search experience used by thousands of travelers monthly.

Key Achievements

  • Served 50K+ monthly active users across Southeast Asia
  • Reduced booking abandonment by 18% with optimized checkout flow
  • Built reusable form system used across 15+ forms
  • Implemented full i18n support for English and Burmese locales

Case Study

Challenge: The booking flow required users to complete 5+ steps across flight, hotel, and package selections. Each step had complex validation rules and conditional fields. The existing implementation used deeply nested Redux state, making it fragile and hard to debug.
Approach: Redesigned the state management using React Context with custom hooks, isolating each booking step into its own context provider. Implemented Zod schemas for runtime validation with clear error messages. Built a reusable form system that could be composed from individual field components.
Lessons Learned: Complex multi-step forms benefit from isolated state per step rather than a single global store. This made each step independently testable and easier to reason about. The Zod validation approach caught errors at the boundary rather than propagating invalid state downstream.
ReactTypeScripti18nREST APIsResponsive