
Role: Project Technical Lead
Studio: Ikan Asin Production
Platform: Mobile (Android & iOS)
Performance: 6M+ downloads, 15K DAU, 35% D1 retention, 10% D7 retention
A narrative-driven life-sim RPG with millions of downloads. I led the technical architecture, systems design, and core engineering direction across multiple major updates while building tooling and pipelines that enabled non-engineers to deliver content quickly and safely.

Role: Project Technical Lead
Studio: Ikan Asin Production
Platform: Mobile (Android & iOS)
Performance: 2M+ downloads, 10K–20K DAU, 35% D1 retention, 9% D7 retention
A narrative-driven life sim expanding the Citampi universe. I started the initial architecture for the project, led technical direction, core systems engineering, content pipeline development, and performance optimization across platforms.

Role: Programmer
A Puzzle platformer 3 day gamejam entry for the Game Dev League August 2022 Jam, Winning 2nd place out of 50 entries

Role: Programmer
Finalist in the University of Indonesia’s Indie Game Ignite Competition

Pure Java (Swing) • Custom Game Engine • No External Dependencies
A fully custom-built 2D action shooter developed entirely with pure Java Swing, showcasing low-level engine design without relying on external libraries.
Created a custom game framework from scratch, including the update loop, render pipeline, and frame-rate independent timing model.
Implemented a GameObject component architecture, enabling modular behaviors, reusable logic, and clean extensibility.

Dart • Python • Lua
A modular, multi-language quantitative trading research framework designed for strategy development, simulation, and statistical evaluation.
Developed a complete backtesting engine with plug-and-play indicators, portfolio models, signal generators, and execution rules.
Implemented a custom multi-language binding layer enabling seamless communication across
Dart : server orchestration
Python : analytics, plotting, machine-learning-based evaluation
Lua : strategy scripting with fast reload and sandboxing
Supports both message passing and remote function execution.
Built a dataset processing pipeline for OHLCV data, featuring windowed transformations, rolling statistics, and custom feature engineering.
Integrated statistical performance metrics, including Sharpe, Sortino, Calmar, max drawdown, volatility, and benchmark comparison.

A custom lightweight framework built on top of LÖVE2D, designed to provide modern engine-like structures such as scenes, game objects, components, and UI features. Built a full OOP-style architecture in Lua, including classes, inheritance, and encapsulated behaviors without relying on external dependencies. Implemented a GameObject component system inspired by Unity, allowing modular behavior composition with clean lifecycle methods. Designed a Scene Management system supporting transitions, loading screens, pausing, and isolated scene contexts.