About
I’ve been an engineer since 2007, most of it on iOS, with the rest across cross‑platform mobile and POS and retail systems. At Solo, I helped build white‑label iOS apps and iPad kiosk software for F&B brands; after the product was acquired by Foodics in 2022, I continued contributing to their mobile apps in Swift and Flutter.
Much of my work has been on the practical side of engineering — making releases repeatable across many branded builds, keeping older codebases stable, and ensuring kiosk and printer hardware behave reliably in real service conditions. I’ve collaborated remotely with teams in Riyadh, Singapore, and Australia for most of the past decade, and I’m comfortable taking ownership of a codebase or supporting an existing one.
Work Experience
FoodicsJuly 2022 — Present
Riyadh, Saudi Arabia (Remote)
Senior Software Engineer — iOS & Flutter
- Cut per-brand release time from 4 hours to 15 minutes by consolidating signing, screenshot generation, and App Store/Play submission into shared Fastlane lanes triggered from GitHub Actions.
- Build cross-platform features in Flutter, using Riverpod for state management and Retrofit for networking, so each one is implemented once instead of separately on iOS and Android.
- Improved stability on an inherited post-acquisition codebase by instrumenting structured logging, working through the highest-frequency crashes, and adding regression coverage around the checkout flow.
- Review Swift and Dart pull requests for a team of 8, and wrote the review checklist the team uses.
SoloNov 2018 — July 2022
Riyadh, Saudi Arabia (Remote) — product and team acquired by Foodics, 2022
iOS Developer — White-Label & Kiosk Products
- Launched white-label iOS ordering apps for 100 F&B brands from a single configurable codebase with per-brand theming, feature flags, and remote config, cutting the work to launch a new brand from 6 weeks to 10 days.
- Shipped a single iPad kiosk app that renders each merchant’s branding and menu from their own account configuration, so a new brand goes live without a separate build, and integrated the Epson ePOS-Print SDK with retry logic and an offline print queue so receipts still printed when the network dropped mid-service.
- Reduced per-brand deployment effort from 6 days to 8 hours by templating Fastlane lanes so a single command shipped every brand build.
- Restructured the app to MVVM with dependency-injected services, raising unit-test coverage from 60% to 85%.
Appetiser AppsMar 2018 — Mar 2019
Australia (Remote) — part-time
iOS Developer
- Shipped livestock tracking, paddock treatment records, and reporting for FarmApp, building offline-first map and record sync in Swift/UIKit that held up in zero-signal field conditions.
- Worked through recurring crashes in legacy Objective-C/Swift codebases across 6 client projects, isolating the network layer behind a testable service layer.
BrowzzinMar 2017 — Mar 2018
Singapore (Remote) — AI-powered fashion social commerce
iOS Developer
- Built the outfit-discovery, share, and shop flows for an AI outfit-recognition shopping app with 10K users, in Swift/UIKit.
- Smoothed feed scrolling on older devices by moving image decode off the main thread and adding prefetch caching.
Earlier Experience
UpNixt Pte Ltd · Singapore (Remote)Nov 2013 — Feb 2017
iOS Developer
Rebuilt itinerary sync and reduced cold-start time on a social travel app; shipped 15 releases with UI/UX and backend teams across 3 time zones.
SG Coders Pte Ltd · SingaporeAug 2012 — Aug 2013
Software Engineer
Profiled in Instruments and removed main-thread blocking from the checkout flow, improving responsiveness on older devices.
Accenture · Cebu, PhilippinesMar 2011 — June 2012
Software Engineer
Delivered SAP ABAP and Siebel customizations on enterprise client engagements after completing Accenture’s technical delivery program — my first exposure to structured release cycles, formal QA gates, and working to a client’s change-control process.
NCR · Cebu, PhilippinesJan 2007 — Dec 2010
Software Development Engineer
Customized and extended NCR’s self-checkout POS codebase for retail clients, resolving hardware and software integration issues — where the kiosk and printer work above started.