I’ve spent the last four-plus years building software across fintech and digital products. My work lives mostly behind the interface: transaction flows, event-driven services, internal platforms, APIs, and integrations that need to stay predictable when the traffic—or the stakes—go up.
I specialize in backend engineering for systems where reliability, performance, and clear data flow matter. Over the years, I’ve built high-value transfer infrastructure, recurring debit systems, merchant authorization flows, image-processing services, and reporting systems.
I care about clear contracts, thoughtful failure handling, and code that the next engineer can understand. Go is my main tool, but reliability—not a particular framework—is the thing I’m really interested in.
How I think about systems
Good backend engineering starts where the happy path ends.
I look beyond whether a service works. I care about what happens when requests race, dependencies time out, messages arrive twice, or data has not caught up yet.
Choose transaction boundaries, locking strategies, and consistency guarantees based on the business risk—not habit.
Design idempotent workers, bounded retries, reconciliation, and dead-letter paths before failures reach production.
Measure first, then reason across memory, queries, caches, queues, and service boundaries to find the real constraint.
A few things I’ve worked on
Financial infrastructure
Built RTGS infrastructure processing up to IDR 20B a day, plus recurring debit orchestration with idempotency, retries, and asynchronous settlement.
Systems at scale
Designed a Multi-QRIS platform serving 4,300+ merchant IDs and 1,500+ merchants, with governed access through role-based authorization.
Practical performance
Rewrote a reporting system in Go to run 70% faster and built image compression that reduced typical files from 10MB to around 400KB.
The longer version
Want the full story?
My résumé has the complete timeline, tools, and project details.