Articles, architectural insights, and tutorials on Kotlin, Jetpack Compose, Flutter, Laravel, Nuxt, and modern engineering practices.

As a photographer, I kept wishing my phone camera felt more like film. So I built Rolla: EXIF photo frames, film simulation filters, Polaroid mode, and a light meter, all in one camera app.
Pinned A Xendit SDK integration kept failing, card payments and transactions with nothing in our logs to explain why. It took a full day of debugging alongside Xendit's engineers to trace it to a conflict with Microsoft Clarity.

I didn't plan to become the person who understands attribution, analytics, and marketing tooling better than most engineers do. It started with a small assignment at Cashbac: connect Mixpanel and AppsFlyer. I ended up learning six different platforms across two companies, and along the way, learning how to work with digital marketing, frontend, product, and analytics teams well enough that they trust me with their data.
Pinned It began with a flash, an aquarium, and a betta fish that refused to sit still. That macro photography hobby ended up on the cover of a book by PT Nirmana Exa Tricipta and Bintang Sempurna, winning Gold at HP Inkspiration Awards 2022 and Silver at Asian Print Awards 2022.

A camera I bought during the COVID-19 pandemic slowly turned into a photography obsession: street photos, macro shots of betta fish, and two photography competition wins.

In October 2020, in the middle of the pandemic, my father-in-law and I picked up our cameras together for Jakarta's oldest Hakka restaurant, hidden down an alley in Glodok since 1925.

Every merchant needed two imported BLE beacons for payment and visit tracking. I turned Android phones into beacon transmitters instead, no extra hardware required.

Debugging a JavaScript PWA offline sync bug that left merchant payments stuck on pending after the original developer had resigned.

In a job interview, I was asked if I could migrate a legacy Android app from Eclipse to Android Studio. I said yes. Three days into the job, I had to prove it, on UANGKU, a mobile e-wallet later acquired by Traveloka.

How I led a full framework migration of MyBOLT's mobile app from Cordova to Ionic independently, preserving user sessions for millions of users through the transition.

An API that returned every car model and detail took 3 minutes to load, and froze the UI while it did. I didn't know why yet, so I went looking.
Pinned In February 2014, Jakarta flooded and I had nothing to do. I built an unofficial Android app for MyBOLT! 4G subscribers to check their data quota. A month later, it got me hired to build the official app.