About

I’m a backend-focused Software Engineer with a curiosity for understanding systems at their core. I enjoy exploring design and architecture decisions, which helps me refine my development practices.

My work centers on building reliable server-side applications and APIs, with a focus on creating scalable, high-performance systems. I believe strong fundamentals make it easier to adapt to new technologies and tackle challenges across the software ecosystem.

I use NeoVim for development and appreciate its simplicity and efficiency. Based in Yogyakarta, Indonesia (🇮🇩), I’m open to remote opportunities to collaborate with diverse teams worldwide.

Feel free to connect—whether here or on Twitter!

Read more

Latest blogs

Feb. 17, 2025

Retrieval-Augmented Generation (RAG): Enhancing AI Responses with External Knowledge

More than 95% of the world’s data is private-either enterprise or personal. We can feed that data to LLM.

RAG is built on a simple idea: LLMs are becoming the core of a new operating system, and integrating private data from external sources is key for processing. That’s the driving force behind RAG.

RAG stands for Retrieval, Augmented, and Generation, and it works in three main steps: Indexing, Retrieval, and Generation.

Mar. 5, 2024

Data Deletion? No Thanks!

A long time ago, like in a fairy tale, when I was an intern, my environment and I would always use DELETE on data, especially in relational databases. After a long journey to the west (moving to my current company), I gained knowledge about soft delete. It became an addiction, and now I wonder–what the hell is delete? I hate delete! 🤬.

Why do I hate deleting data from my database? Well, not entirely–I have a love-hate relationship with it. It comes a lot of pain points, such as:

Feb. 27, 2024

How Event Sourcing Solves Real-World Problems

I’m curretly joining to new project after finishing my previous one. I work at software house with multiple teams, each consisting of small number of members (5 engineers-either backend or frontend). The project leader has assigned me the task of exploring the concept of Event Sourcing. Since our project team is small, I need to design an Event Sourcing system that can be easily maintained by a small team. Additionally, the system must preserve historical data, enabling us to view user information based on its state over time.