About
I'm a mobile engineer who has spent the last decade shipping Android at consumer scale. Most recently that was a social app serving 3M daily active users, 300M daily messages and over 50M downloads.
My work tends to sit where performance meets architecture: reworking rendering paths, replacing legacy subsystems, and making untestable code testable. I care about the numbers that come out the other side.
Outside of Android I work with iOS, Flutter and React, enough to build and ship my own side projects end to end.
Experience
Oct 2025 - Present
Full-Stack Engineer, AI Integration Engineer · Vannise
Own the engineering side of a commerce company — the cloud platform, the customer-facing products on top of it, and the internal tooling AI agents now operate.
- Stood up the company's GCP platform (Cloud Run, Compute Engine, Cloud Scheduler) and moved every internal tool onto it.
- Shipped the live-commerce platform end to end, from order capture in stream comments through to the shopper-facing storefront.
- Opened the in-house system to AI agents through an MCP server and Agent Skills, so stock lookups and edits happen in chat.
- GCP
- Cloud Run
- Next.js
- Full-Stack
- MCP
- Agent Skills
- Meta Graph API
Feb 2019 - May 2023
Software Engineer, Android · Grindr
Owned core Android surfaces on a social app serving 3M daily active users, 300M daily messages and 50M+ downloads.
- Cut startup cascade load time by 43.3% by reworking the UI rendering path on the lightweight client.
- Designed server-side message storage backed by a local cache, so conversations survive reinstalls.
- Replaced the legacy location stack and introduced MockK, making the core modules testable.
- Kotlin
- MVVM
- Clean Architecture
- Hilt
- Retrofit
- Kotlin Coroutines
- MockK
- CI
Oct 2017 - Dec 2018
Software Engineer, Android · Kika Tech
Built rich-media and voice input features for a third-party keyboard with a global user base.
- Shipped a media composition pipeline that let users create and send GIFs without leaving the keyboard.
- Architected voice input across several ASR providers with AI-assisted text correction on top.
- Android
- Keyboard / IME
- GIF
- AI recommendation
- ASR
Jul 2017 - Sep 2017
Android Developer · OneTalk Tech
Built conversational interfaces on Android, wiring several speech recognition backends behind one surface.
- Integrated a DialogFlow-driven conversational UI.
- Connected iFlyTek, Google Cloud, Microsoft and Amazon speech recognition behind a single abstraction.
- Android
- DialogFlow
- ASR
- Chat Head
- Amazon Polly
Sep 2016 - Jun 2017
Senior Software Engineer, Android · Gamania
Built a location-based chat product inside a Scrum team.
- Designed and shipped the location-based matching and chat flow on Android.
- Android
- LBS
- Scrum
Sep 2013 - Aug 2016
Senior Software Engineer, Android · ASUS
Owned audio playback across ASUS Pad, Phone and the Zenbo robot, and led the refactor that unified them.
- Designed the audio player shipped across Pad, Phone and Zenbo devices.
- Integrated NAS audio APIs so network libraries played back like local ones.
- Led the architecture refactor that consolidated three device families onto one player.
- Android
- NAS API
- Zenbo
Projects
View All Projects
IG Story Text Editor
Personal · 2026
A text sticker maker for Instagram Stories. Lay out the type, copy it as a transparent-background image in one tap, and paste it straight into a story.
- Full-Stack
- Cloudflare Workers

TanTan — Trip Expense Splitter
Personal · 2026
A web app for splitting trip costs. Create a trip, invite friends to log expenses, income and transfers between members, then settle up with the fewest transfers possible.
- Full-Stack
- Cloudflare Workers

Heirs' War — Digital Game Experience App
Personal · 2024
A digital game experience app for a real-escape game, split into a player client and an operator console.
- Next.js
- Firebase

BF Wallet — Bitfinex Funding Tracker
Personal · 2023-2024
A tracker for Bitfinex funding. Shows open funding positions, the interest credited each day, and how earnings have moved over time.
- Flutter

Grindr Lite
Grindr · 2021
A lightweight Grindr client for low-end devices and slow networks. Optimised UI rendering (Litho) and cut data usage and transfer cost; reworking the rendering path reduced startup cascade load time by 43.3%.
- Android
- ProtoBuf
- Litho

Escape Note
Personal · 2019
An Android and iOS app for real-life room escape players — a log of the rooms you have played, plus theme and venue lookup.
- iOS
- Android
- Firebase