Tech Lead at PlaySimple Games, running engineering for a live mobile game at 700K+ daily active users. I work across gameplay systems, Go backend services, and the performance work that only shows up under real load.
I joined PlaySimple as an intern and grew into a Tech Lead over four years — shipping three live titles end-to-end across Unity, C#, Android and Golang.
Today I run engineering for a live Match-Three game, leading a small team that owns architecture, live ops, performance, and the features that move the product forward.
I care about clean architecture, games that stay smooth under load, and teams that ship with confidence. I like problems where the stakes are real and the metrics are honest.
A live Match-Three mobile game I helped build from its MVP to 700K+ daily active users. I lead engineering across architecture, live ops and performance, and maintain the Go leaderboard service behind it.
A Match-Three title I led end-to-end, from first line of code to global launch, built on top of our existing Tilematch codebase. I built the Unity/C# and Android client, extended the Golang game server and its ScyllaDB/Redis data layer, and integrated the analytics, ads and IAP stack.
A live TriPeaks card game where I started as an intern. I shipped gameplay features, minigames and internal tools end-to-end, and built the Android notification infrastructure from scratch, which lifted cohort re-engagement and retention.
Built the game's leaderboard backend from scratch — controller, model, Redis sorted sets, fetch and update APIs — serving 700K+ daily users. Generalised it into an event-agnostic system that now powers four leaderboard types and has been extended by six engineers since.
A studio-wide UI system: custom components, a theme and palette engine, and a bespoke editor per element. Now a pinned dependency in two shipped games, maintained by four engineers after me.
Runtime manager, scriptable-object model, UI text component and Google Sheet import tooling, built alone. Supports 15+ languages, contributed to 3x user-acquisition growth, and is consumed by two games and another internal package.
Consolidated player metadata into a single ScyllaDB lookup to cut a query from the hot path, added Redis caching for player fetch, and migrated design-data configs from JSON to Protocol Buffers to reduce payload size and GC overhead.
Open to engineering roles and projects where the problems are hard and the scale is real.