Production mobile product

Cooking — Local Homemade Food Marketplace

A production mobile ecosystem connecting customers with nearby local kitchens through Android and iOS applications, supported by a dedicated Android manager app for daily store operations. I contribute across the customer, store, and API layers.

RoleFull-Stack Mobile Engineer
TimelineApril 2026 – Present
PlatformsAndroid, iOS & tablet
FocusProduction mobile product
CookingOne marketplace, two product experiences
Android iOS Tablet
Customer app
Public Cooking customer app screen showing nearby kitchens in a searchable marketplace list
Kitchen operations
Cooking ManagerToday
Public customer marketplace screen paired with a privacy-safe representation of the store-facing tablet workflow.

Production product

A production mobile marketplace serving customers and the kitchens fulfilling their orders.

A production mobile ecosystem connecting customers with nearby local kitchens through Android and iOS applications, supported by a dedicated Android manager app for daily store operations. I contribute across the customer, store, and API layers.

Two-sided product

Customer demand and kitchen operations meet in the same live marketplace: discovery and ordering on one side, fulfilment and availability on the other.

Product overview

Cooking connects people looking for prepared homemade meals with nearby local kitchens. The product has to make discovery, menu exploration, ordering, and follow-up feel coherent across mobile platforms.

The other side of the marketplace is operational: kitchens need a dedicated manager experience for orders, menus, product availability, and planning throughout the day.

Both applications depend on the same product state, so customer-facing choices and kitchen-side operations must remain consistent as orders and availability change.

Context
  • The customer application is published for Android and iOS; Cooking Manager is published for Android and designed around store operations.
  • My contribution spans sustained product work across the customer application, the manager application, and supporting API behaviour.
Constraints
  • Cross-platform flows must account for Android- and iOS-specific behaviour without drifting into separate products.
  • Operational screens must stay legible and responsive on store devices during time-sensitive daily work.
  • Authentication, cart state, notifications, and releases need resilient failure handling because they sit on critical user journeys.

My contribution

Full-Stack Mobile Engineer

  • Implemented and improved customer marketplace flows covering kitchen discovery, map and list behaviour, menus, favourites, cart state, authentication, sharing, and order-related UX.
  • Stabilised favourites and cart interactions, including cache consistency, conflicting selections, and concurrent state updates.
  • Improved map rendering, marker behaviour, location edge cases, and navigation between marketplace views on Android and iOS.
  • Strengthened authentication callbacks, email-verification recovery, sign-up validation, and user feedback around failure states.
  • Worked on Cooking Manager order workflows, notification sound and cancellation behaviour, order-detail legibility, product availability, and tablet-oriented layouts.
  • Added and maintained Jest coverage and cross-platform Maestro journeys for core customer flows on Android and iOS.
  • Supported production readiness through build-number updates, EAS configuration fixes, Android build troubleshooting, and pre-release QA follow-ups.
  • Contributed supporting API fixes for marketplace ordering, catalogue operations, distance ordering, stock validation, and administrative workflows.

Application ecosystem

Cooking operates as two connected product surfaces. The React Native customer application handles discovery, menus, favourites, cart, orders, location, and sharing. Cooking Manager gives kitchens an operational Android experience for orders, menus, availability, and planning. Shared API and data services keep marketplace intent aligned with what kitchens can fulfil, while platform services handle notifications, location, updates, and release delivery.

Cooking — Local Homemade Food Marketplace system architecture
01Customer application
  • Android and iOS marketplace
  • Kitchen discovery, search, filters, and maps
  • Menus, favourites, cart, orders, and sharing
  • Authentication and account flows
02Cooking Manager
  • Android store operations
  • Order queue and order details
  • Menus, products, and availability
  • Planning and notification workflows
03Application layer
  • Expo Router navigation
  • TanStack Query server state
  • Jotai client state
  • Supabase-backed services
04Quality and delivery
  • Jest and React Native Testing Library
  • Maestro cross-platform journeys
  • EAS Build and app-store release profiles
  • Crash and analytics instrumentation

Engineering challenges

Keep customer state trustworthy across rapid interactions
Context
Favourites, cart selections, availability, and cached server state can change from several user actions and background refreshes.
Choice
Harden cache updates, conflict handling, and state transitions, then cover the risky paths with focused tests.
Tradeoff
More explicit state coordination adds implementation detail, but avoids stale UI and protects ordering intent.
Treat Android and iOS as distinct runtime environments
Context
Maps, calendars, authentication callbacks, layout, and native packages do not always behave identically across platforms.
Choice
Handle platform-specific edge cases inside a shared Expo codebase and validate core journeys on both operating systems.
Tradeoff
Platform-aware branches require continued device testing, while preserving a coherent customer experience and shared product velocity.
Make store notifications operationally useful
Context
New and cancelled orders must be noticeable without creating duplicate or misleading alerts during local order actions.
Choice
Coordinate audible feedback, cancellation state, and suppression rules around the manager order lifecycle.
Tradeoff
Notification logic becomes device-state aware, but better reflects the action the kitchen actually needs to take.
Keep releases reproducible as native dependencies evolve
Context
Expo upgrades, Android build tooling, native modules, and store build numbers can block otherwise ready product work.
Choice
Maintain explicit EAS profiles, resolve native compatibility issues, and treat release configuration as part of the product surface.
Tradeoff
Release maintenance is ongoing engineering work, but it reduces last-mile surprises during QA and distribution.

Production reliability and privacy

  • Authentication flows include timeout, validation, callback, and verification-recovery handling rather than assuming a single happy path.
  • Cart and stock checks defend against stale or conflicting selections before an order advances.
  • Error and loading states are treated as part of the mobile UX across marketplace and operational flows.
  • Platform configuration separates build profiles and keeps environment-specific values outside public portfolio content.
  • The public case study intentionally excludes private endpoints, credentials, customer data, order details, and internal repository links.

Testing and quality

  • Jest and React Native Testing Library cover state, hooks, utilities, and customer-facing component behaviour.
  • Maestro journeys exercise launch, discovery, filters, store browsing, cart, orders, authentication, favourites, profile, and empty-state paths.
  • Cross-platform test setup covers both Android and iOS customer journeys.
  • Pre-release QA work includes targeted fixes for navigation, visual consistency, state recovery, and build readiness.

Production proof

  • Cooking is publicly available as a live product website and customer marketplace on Google Play and the App Store.
  • Cooking Manager is publicly listed on Google Play as the store-facing application for orders, menus, and availability.
  • The work demonstrates continued delivery across customer-facing and operational mobile experiences, supported by API and release work.
  • Public store listings and product pages provide verifiable production proof without relying on private source links or fabricated metrics.

Customer application

Customers discover nearby kitchens, explore menus, save favourites, build a cart, and follow their orders in the mobile marketplace.

Cooking Manager

Kitchens receive the operational context to manage orders, menus, product availability, and planning in Cooking Manager.

Reflection

What this work demonstrates: Maintaining a coherent marketplace across two applications, two mobile operating systems, live operational state, and evolving native release tooling.

Reflection: Production mobile engineering is as much about state recovery, device behaviour, operational clarity, and release readiness as it is about implementing the visible feature.

  • Continue expanding regression coverage around the highest-risk customer and store workflows.
  • Keep simplifying operational interactions as real kitchen workflows evolve.
  • Maintain platform and release compatibility as Expo, Android, and iOS requirements change.