OneCard
Fintech mobile app for iOS and Android. Core contributor to the OneCard 2.0 rewrite, base architecture, and the New Architecture (TurboModules, JSI) migration.
Hi, I'm
Five years building mobile products that went from an early startup to millions of users. I care about the details people notice, the performance they don't, and the engineering decisions that keep things from falling apart as a product grows. I like the parts of engineering where a good architectural call quietly saves someone else a bad afternoon three months from now. When I'm not thinking about how to make a product better, I'm probably watching a football match and wondering why the manager made that substitution.
$ cat facts.txt
Fintech mobile app for iOS and Android. Core contributor to the OneCard 2.0 rewrite, base architecture, and the New Architecture (TurboModules, JSI) migration.
Fintech mobile app for iOS and Android, part of the same product ecosystem as OneCard.
A developer tooling library for real-time network request inspection and analytics in bare/Expo React Native apps, for both Android (OkHttp interceptor) and iOS (NSURLProtocol).
Diagnosed and fixed an Android text clipping bug in React Native core (ReactTextView.java) where adjustsFontSizeToFit failed to recalculate font size on container resize.
Rendered the way I'd build it — flick the list and watch the runtime work.
Drag · flick · pull to refresh
Ask away — the answers are mine, written ahead of time.
The stuff users feel, even when they don't know why. A screen that responds instantly, a flow that doesn't make them think, a feature that doesn't fall apart when traffic grows. I like working on the layer where product decisions and engineering decisions meet.
I don't like optimising things just because a profiler says I can. I want to know what the user is actually feeling first. Then I trace it back to the real bottleneck, whether that's rendering, network calls, native communication, or architecture.
Moving a large React Native app from the old bridge to the New Architecture. It wasn't just a migration exercise. It meant understanding how JS and native communicate, finding the places where the old assumptions mattered, and making sure the user actually benefited from the change.
I try to make the next engineer's job easier. A good architectural decision isn't necessarily the cleverest one. It's the one that makes the codebase easier to change six months later, when nobody remembers why that decision was made.
Absolutely. But I don't want it deciding what we're building. I use AI to explore a codebase, challenge an approach, implement well-defined pieces, and run through verification. The important thinking still happens before the prompt.
Anything where the interaction matters. Gestures, animations, navigation, real-time data, things that have to feel right at 60fps. I'm probably more interested in the last 10% of polish than I should be.
Watch football and analyse matches far more seriously than my friends think is reasonable. I enjoy the tactical side of the game almost as much as watching it.
Latest posts, pulled live from Medium.
Always happy to talk React Native, mobile architecture, or whatever you're building.