Skip to content

Work

Selected projects and open-source work.

setafonts

List of setafont for seta-sign

Makefile

telebot

whoami for telegram bot

py-icrawler

python web crawler with python django and scrappy

tcc

Praktikum Teknik Cloud Computing - TI-9

nginx-docker

Run nginx with custom configuration in docker container

Dockerfile

rails-toolbox

Ruby on Rails tollbox

Makefile

A mix of production systems and open-source tools built over the last several years. Infrastructure-heavy work at Privy, utilities everywhere else.


iamucil.site

Problem: Personal brand site was a single-page profile card with no routing, broken social links, and an AdSense dependency that clashed with a minimalist positioning.

Approach: Rebuilt as a multi-page Nuxt 3 portfolio with Cloudflare Pages deployment — re-enabled routing, wired Nuxt Content v3 with a Cloudflare D1 backend for markdown-driven pages, added a cookie-based dark mode with FART prevention, and set up a three-job CI pipeline (unit tests → build/deploy → Playwright smoke).

Outcome: Five prerendered routes with Web Vitals in the "Good" band (LCP, CLS, INP) at P75 mobile. _worker.js bundle at 767 KB — well under the 1 MiB Cloudflare free-tier ceiling. Full WCAG AA across all pages.

Stack: Nuxt 3, Cloudflare Pages, Nuxt Content v3, D1, @nuxt/ui, Vitest, Playwright


go-whatsapp

Problem: No lightweight Go client existed for the WhatsApp Web protocol that teams could embed directly in backend services without spinning up a headless browser.

Approach: Implemented the WhatsApp Web WebSocket protocol in pure Go — binary message framing, HMAC-SHA256 authentication, QR-code pairing flow, and a persistent session store. Designed the API to be embeddable as a library rather than a sidecar.

Outcome: Used in several internal notification pipelines. Handles reconnect and session refresh automatically so callers don't need to manage WebSocket state.

Stack: Go, WebSocket, Protocol Buffers


Privy Identity Infrastructure

Problem: Privy's signing and identity verification flows needed to scale to millions of documents per month while maintaining legally-binding audit trails and sub-second response times at the API layer.

Approach: Designed and operated the core signing microservices — certificate lifecycle management, digital signature orchestration, and webhook delivery. Introduced structured logging and distributed tracing to surface latency hotspots across the verification chain.

Outcome: Reduced average signing API latency by 40% after profiling and eliminating redundant certificate validation round-trips. Audit trail completeness holds at 100% — a compliance requirement for Indonesian electronic signatures under POJK regulations.

Stack: Go, gRPC, PostgreSQL, Redis, Kubernetes


nuxt-starter

Problem: Spinning up a new Nuxt 3 project with TypeScript, ESLint flat config, Prettier, and Cloudflare Pages targeting took 30–60 minutes of boilerplate every time.

Approach: Extracted the repeatable setup into a template repository — @nuxt/eslint flat config wired with withNuxt, Prettier standalone (not via ESLint plugin), .node-version pinned for Cloudflare Build system v3, and nitro.preset: 'cloudflare_pages' in nuxt.config.ts from the start.

Outcome: New projects reach a clean npm run build and deploy in under five minutes. The template has been used as the baseline for three internal Privy tooling sites.

Stack: Nuxt 3, TypeScript, ESLint, Prettier, Cloudflare Pages