# Fariz Wibisono

Full-Stack Software Engineer in Cirebon, Indonesia. Full-stack software engineer working with TypeScript, React, Next.js, Node.js and PostgreSQL. I build and modernize production web platforms: interfaces, APIs, data pipelines, and the tests and infrastructure around them.

## Experience

### Full-Stack Software Engineer, Enclavium

2023 – Present

- Led the brownfield modernization of Invictus from an MVP built around Robinhood Chain (Telegram bot and Express-served web app) into a multi-chain, multi-protocol LP terminal on seven chains, serving 1,000+ concurrent users and $4M in transaction volume.
- Re-architected it as a TypeScript monorepo (pnpm, Turborepo): Next.js web, Fastify API with oRPC and WebSockets, per-chain indexers, and BullMQ workers on PostgreSQL with TimescaleDB and Redis.
- Integrated 31 protocol deployments across 15 variants (Uniswap, PancakeSwap, Aerodrome, Meteora) on EVM chains and Solana, normalized server-side into one position model.
- Replaced the MVP's custodial hot wallets with Privy embedded and self-custody wallets so no private keys are stored, and chose TimescaleDB after measuring 30-day event storage at about 22 GB compressed versus 80 GB in plain Postgres.

Stack: TypeScript, Next.js, Node.js, Fastify, PostgreSQL, TimescaleDB, Redis, BullMQ, Docker, MCP

### Software Engineer Intern, PT SCADA PRIMA CIPTA

Feb 2026 – Jun 2026 · Bandung, on-site

- Re-implemented core modules of PROMIA, a risk-based inspection (RBI) desktop application, as a Next.js web app on SQL Server, working from its screens, workflows and data structures rather than its source code; covered flows with Playwright E2E and Vitest unit tests.
- Built scada.co.id as a static Astro site on Sanity CMS (GROQ, six cross-referenced content types), deployed with Docker on a VPS, so non-technical staff publish without code changes.
- Automated PDF-to-article drafting with an n8n and LLM (OpenRouter) pipeline into Sanity, with field validation, run logging and human review before publishing.

Stack: Next.js, TypeScript, SQL Server, Playwright, Vitest, Astro, Sanity CMS, n8n, OpenRouter, Docker

### Software Engineer (Volunteer), KEMAKOM UPI

2024 – 2025

- Built the Dinamik 19 event website (competition pages, technical guidelines) and the P2M community tourism website.

Stack: PHP, Laravel, MySQL, JavaScript, Tailwind CSS

### Full-Stack Software Engineer (Freelance), Freelance

2021 – 2023

- Delivered websites and web applications for clients and communities end to end: requirements, REST APIs (Laravel, Express.js), React and Next.js frontends, MySQL and MongoDB, deployment and handover.

Stack: JavaScript, TypeScript, PHP, Laravel, React, Next.js, Node.js, Express.js, MySQL, MongoDB, Tailwind CSS, Git

## Selected work

- [Invictus](https://frzxw.me/projects/invictus): Multi-chain DeFi LP terminal. 1,000+ concurrent users and $4M in transaction volume across seven chains.
- [PDF to blog pipeline](https://frzxw.me/projects/content-pipeline): AI-assisted workflow that turns PDF documents into blog drafts. Editors start each post from a structured draft instead of a blank page.
- [Sakola](https://frzxw.me/projects/sakola): Modular multi-tenant school platform. Student savings module built on an append-only ledger; more modules in progress.
- [Rasain](https://frzxw.me/projects/rasain): Recipe and cooking app with a step-by-step cooking mode. A Flutter app on Supabase with recipes, cooking timers, reviews, notifications and pantry management.

## Websites and landing pages

- [PT SCADA PRIMA CIPTA](https://scada.co.id/): Company website
- [Invictus](https://www.lpinvictus.com/): Product landing page
- [Helmet](https://hermes-helmet-landing.vercel.app/): Landing page
- [Laksana](https://www.laksana.dev/): Studio website
- [Runtastic](https://runtastic-landing.vercel.app/): Landing page

## Skills

- Languages: TypeScript, JavaScript, PHP, Python, Rust, Dart
- Frontend: React, Next.js, Astro, Tailwind CSS, Radix UI, Flutter
- Backend: Node.js, Fastify, Express.js, NestJS, Laravel
- Data and queues: PostgreSQL, TimescaleDB, MySQL, MongoDB, Redis, BullMQ, Supabase
- Testing and automation: Vitest, Playwright, n8n
- DevOps and tooling: Docker, GitHub Actions, Cloudflare, Vercel, Git, GitHub, Biome, Turborepo, Postman
- AI tools: MCP, OpenRouter, Claude Code, Cursor
- CMS: Sanity CMS

## Education

- Universitas Pendidikan Indonesia, Computer Science, undergraduate (2023 – Present)

## Writing

- [A portfolio that agents can read](https://frzxw.me/blog/a-portfolio-for-agents) (2026-11-12): More people now meet my work through an AI assistant than through my home page. Here is what this site serves to agents, and why each piece is small.
- [How I use AI as leverage, not autopilot](https://frzxw.me/blog/ai-as-leverage) (2026-11-12): AI writes a lot of my first drafts now, in code and in content. This is where I draw the line between what the tool does and what stays my job, and the writing that shaped how I think about it.
- [Designing for what you can't know](https://frzxw.me/blog/designing-for-what-you-cant-know) (2026-11-12): Good software is honest about uncertainty. A small example from a crypto terminal: when the data stops, we say so on screen instead of pretending everything is live.
- [Store the history, not just the number](https://frzxw.me/blog/ledgers-not-balances) (2026-11-12): Two very different products, a crypto terminal and a school savings app, ended up with the same rule for money: never edit a number, only add a record. Why that matters, and what it costs.
- [Measure before you choose: why I start with boring technology](https://frzxw.me/blog/measure-before-you-choose) (2026-11-12): Data-heavy products attract exciting infrastructure. I usually start with the simplest setup that works, and I make that choice with numbers, so it is easy to explain and easy to revisit.
- [Rebuild or refactor? How I decide](https://frzxw.me/blog/rebuild-or-refactor) (2026-11-12): The usual advice is never to rewrite a working product. Sometimes it is still the right call. These are the four questions I ask before choosing, and how they played out on a real product.

## Contact

- Email: frzwibisono@gmail.com
- GitHub: https://github.com/frzxw
- LinkedIn: https://www.linkedin.com/in/frzxw/
- X: https://x.com/frzwibisono
- Website: https://frzxw.me
- Resume (PDF): https://frzxw.me/cv.pdf