Understand the whole flow
Trace callers, shared helpers, integrations, and adjacent surfaces before changing production behavior.
I lead engineering on a multi-tenant loyalty platform used by 10,000+ merchants — owning architecture, integrations, and reliability through to the customer-facing surface — and I build the automation and agent tooling the team ships it with.
Code is the medium. The work is turning complex systems into products people can use.
A multi-tenant SaaS platform that helps eCommerce merchants operate customer loyalty and rewards programs.
Joy gives merchants a platform for running loyalty and rewards experiences across their commerce operations and customer-facing surfaces.
Merchant configuration, customer activity, program rules, rewards, and third-party integrations all read and write the same program state. Keeping those surfaces consistent is the constraint the system is designed around.
Build the feature. Trace the impact. Verify the result.
Trace callers, shared helpers, integrations, and adjacent surfaces before changing production behavior.
Prefer minimal diffs, explicit risk gates, and clear separation between product logic and presentation.
Use reproducible tests, impact classification, diff review, health checks, and rollback-ready delivery.
Software Engineer / Engineering Lead
Software Engineer · SaaS products for eCommerce
Software Engineering Intern
Hanoi, Vietnam
Not everything I build is meant to become a product.
I work on loyalty systems every day, so it is the one subject where I can tell whether a piece of writing is actually right rather than merely fluent. I wanted to know how much of an editorial operation could run without me in it — choosing the subject, doing the writing, and deciding what is good enough to publish. The only honest way to find out was to build one, put it in public, and let it run.
What I wanted out of it: a clearer sense of where automated judgment can be trusted, and where it fails quietly enough that you would not notice.
It is my own project. No team, no customers, no roadmap — and it stays that way.
loyalflow.ccEvery codebase is a wall you clear one release at a time.