Yogyakarta, Indonesia / open to Singapore
I build products from zero and lead the migrations that come after.
React Native / Next.js / NestJS / Laravel / IoT
Today I run a payment system doing around 2,000 transactions a day across 80+ laundry locations, on cheap branch internet, with nobody on site.
More than what fits on a CV.
I shipped before AI wrote code
I wrote my first production code in 2020, four years before I graduated. Every system on this page was designed, fixed, and kept running by hand.
I led the migration, not just the tickets
I moved our stack from Laravel to React Native and NestJS, then was promoted from Fullstack Developer to Project Manager along the way, while still writing code.
I have worked across borders
Backend developer at a Singapore company, building a live platform for their client in Europe, on a team split across two countries.Zettabyte Pte Ltd / Singapore
01 / SCALE AND RELIABILITY
KRISPAY
Cashless payments for self-service laundry machines, running in 80+ locations on internet that drops.
A payment can succeed at the provider while the confirmation never reaches us. So every transaction carries a key the server recognizes on repeat, and the server asks the provider directly when no confirmation lands in time. Trade off: unfinished payments are held longer and reconciled by a job. I took it, because charging someone while the machine stays dead costs trust, not just money.
02 / DATA YOU CAN TRUST
Presein
HR and attendance for 250+ employees across branches. Clock ins that cannot be faked, then answers in plain language.
If clocking in is just a button, anyone can press it from anywhere. So the app checks location against the employee's own branch, asks for a photo, and handles fake GPS and changed phone clocks rather than believing the device. Trade off: people in weak indoor signal struggle to clock in. I took it, because attendance data you cannot trust makes every payroll decision built on it useless.
Presein / clock in
Cabang Jogja 04
03 / ZERO TO ONE, B2C
Londrin
On demand laundry pickup and delivery. One order status kept in sync between customer, courier, and branch.
Recently launched, so scope is the honest measure, not scale. Each side can stall on its own: the courier arrives early, the branch weighs the load heavier than the estimate so the price changes, or the wash is done with no courier free. The order state machine has to survive all three.
Two more, kept short.
Smartkris, the rebuild
KRISPAY's replacement on NestJS with our own device firmware, so neither the server nor the machines depend on an outside company's plans.In development / NestJS / PostgreSQL / firmware
Zettabyte Pte Ltd, Singapore
Backend developer for a Singapore company, building a live platform for their client in Europe. Client work stays unnamed here.2024 / backend / cross border team
Six years of production code, four of them before graduation.
170 x 170
Looking for an engineer who has kept real systems running?
I am open to new roles and ready to move to Singapore.