2 apps I ship and maintain myself. Each one started as something I wanted to exist.
Live on App Store
Most focus timers bury the technique under features. This one keeps it plain: pick a length, start, and let the tick hold you to it. Work, short break, long break, repeat — no accounts, no dashboards, nothing to configure before you can begin.



Live on the web
A genealogy viewer for Vietnamese families. Each member is a Markdown file; you load a .zip and everything is parsed in the browser — no backend, no account, nothing leaves your device. It draws the tree with d3, works out generations dynamically, resolves the notoriously intricate Vietnamese kinship terms, and reports statistics across the family.




Alongside my own apps, most of my decade has been building iOS for other people's products — largely for the Japanese and Korean markets, plus startups that needed an app shipped before the runway ran out.
Long-running engagements with product teams in Tokyo and Seoul. Remote-first, async-heavy, and held to the review standards those markets expect.
First version to App Store, usually as the only iOS engineer. Scoping, architecture, release pipeline, and the pragmatic trade-offs that get a v1 out.
Led teams of 2–3 engineers, mentored juniors, and ran delivery in Agile/Scrum with cross-functional partners.
Swift and Xcode are where I live — that is where the vast majority of my decade has gone. Objective-C still shows up in the codebases I inherit, React Native when a client wants one team instead of two, and the web stack when a side project calls for it.