Paiseh (歹势) is Hokkien for shy — the particular Singaporean flavour of shy that stops you making a fuss about yourself. It felt like the right name for a project that would rather the apps did the talking.
This is a personal hobby, built evenings and weekends, entirely separate from and unrelated to my day job. I make small, focused apps that do one thing properly. Several of them only make sense here: live EV-charger availability from LTA DataMall, a durian guide that knows the season, gift suggestions that understand which presents are a cultural landmine.
Some of these are shipped. Most are builds against a written spec, with the tests and the rough edges both visible. Every app page says which — and none of them claims a download count I haven't got.
How I workLocal first
Where an app can keep your data on your device, it does. Gift Guide SG has no accounts and no server. Tsk Do What? syncs through your own iCloud, not mine.
Native
SwiftUI on Apple platforms, Kotlin and Jetpack Compose on Android — usually both, from one shared spec, so the two never drift apart.
Spec first
Every project starts from a spec a human approved, and the spec stays in the repository next to the code.
Tested at the edges
The parts that break quietly — recurring dates across leap years and daylight saving, adaptive watering intervals, streak grace days, permission checks — are pure modules with tests. The rest is allowed to be straightforward.
Honest about state
Payment flows that still need a real Stripe account are described as stubs. Functions that compile but aren't exercised in CI are described that way too.