whoami

Muhammad Elvan Rafif

Frontend Engineer · Transfez & Jack (YC W22) · Remote · Jakarta, GMT+7

I craft the half that matters.

I build products that go live, perform well, and don't break at 2am.
Deadlines? Met. Edge cases? Handled. Coffee? Always.

5+ yrs exp· 3 platforms· 2 products, one team of two· cups of coffee

free to chat — open to roles & freelance

## about // the human behind the code

Muhammad Elvan Rafif
elvan.ascii · hover to decrypt

I'm Elvan. I build the frontend for two fintech products under one roof: Transfez, a consumer cross-border remittance app, and Jack, a B2B platform for company spend, payroll, and banking automation. They're built differently on purpose — one has to be obvious to someone sending money home for the first time, the other has to be dense enough for a finance team living in it all day. I move between both.

The UI is the easy part. The hard part is everything a user never sees: a transfer that's submitted but not yet confirmed, a status webhook that lands before the response does, a payroll run of up to 1,000 rows where row 47 fails and the other 999 still have to go through, an FX rate that expires while someone is still typing the amount. In fintech the frontend isn't a view layer — it's one step in a money movement that can't be half-done.

Fully remote for my entire career — comfortable with async collaboration, written decision-making, and owning work end to end without anyone checking in. Before the code, I worked in banking ops — so yes, I actually understand the domain I build for.

based_in
Jakarta, ID
timezone
UTC+7 · GMT+7
superpower
debugging at 2am
resume
download_cv.pdf ↓

## stack // tech I ship with

languages
TypeScript · JavaScript · CSS · SCSS/Sass · HTML
frameworks
React · React Native · Next.js · Vue · Gatsby
state_styling
TanStack Query · Redux · Zustand · CSS architecture · Tailwind · NativeWind · Bootstrap · ShadCN UI
tooling
Vite · Node.js · Express · ESLint · Prettier · Jest · pnpm
mobile
React Native · Android Studio · Xcode
deployment
Azure CI/CD · Vercel · Netlify · VPS · S3 · PocketBase · Coolify · Docker · GitHub Actions · Supabase
dev_tools
VSCode · Git · GitHub · Figma · NPM · Yarn · Postman · Jira
ai_tools
Claude Code · Cursor · Copilot · OpenCode · Codex · Windsurf · Antigravity

## work // things I've shipped

01 International Transfer fintech · b2b

Built frontend for a B2B international transfer product. Each corridor has its own recipient form schema and validation rules. Features real-time FX rates that expire mid-session and multi-method payments — Jack Pocket, Danamon, and Virtual Account.

[Next.js, TypeScript, TanStack Query]

02 Bulk Transfer & Payroll fintech · b2b

Built the frontend for batch disbursement across two products — bulk upload of up to 1,000 rows, per-row and bulk validation, partial-failure recovery so one bad row doesn't sink the batch, and real-time polling for processing status.

[Next.js, TypeScript, TanStack Query]

03 Transfer Security security · consumer

Implemented the security layer for consumer money transfers — PIN entry with state machine, crypto-hashed submission, fingerprint authentication, and OTP with timer and resend logic. Shipped across two corridors: Malaysia → Indonesia and Singapore → Indonesia.

[Next.js, TypeScript]

04 Architecture Firm ERP side project · full-stack

Designed and shipped a full internal ERP solo for an architecture firm — live in production. Covers project tracking across architecture, civil, and interior divisions, client management, A4 quotation & invoice editor with QR verification, role-based dashboards with Gantt chart, and financial reporting with PDF export. Custom RBAC with granular per-role permissions.

[React 19, TypeScript, PocketBase, TanStack Query, Tailwind CSS 4]

// More work exists — most lives under NDA. If you want the full picture, let's talk.

## experience // where I've worked

Frontend Engineer — Transfez (YC W22)

jan 2021 — now · remote · jakarta · consumer cross-border remittance

// runs concurrently with the Jack role below — total tenure is 5 yrs 8 mos, not 11

  • Built the international and local transfer flows end to end — quote, rate lock, recipient validation, submit, and the long tail of pending, partially-settled, and failed states.
  • Shipped iOS, Android, and web from React Native + Next.js, with a deliberate line between what's worth sharing across platforms and what's better written natively.
  • Rebuilt server-state handling on TanStack Query — cache invalidation, retry policy, and optimistic updates that roll back cleanly when a bank says no. Cut redundant API calls by ~60%.
  • Handled FX rates that expire mid-session — the amount a user typed 30 seconds ago may no longer be the amount they'll pay, and the UI has to say so before they commit.

[TypeScript, React Native, Next.js, React, TanStack Query, CSS, Tailwind, Netlify, Git]

Frontend Engineer — Jack Finance

jan 2021 — now · remote · jakarta · B2B spend, payroll & banking automation

// runs concurrently with the Transfez role above — same company, two products

  • Built the payroll frontend — bulk upload of up to 1,000 rows, per-row validation, and partial-failure recovery so one bad row doesn't sink the batch.
  • Own the client side of our banking integrations. The integrations themselves belong to backend; my job is what happens when they misbehave — normalising inconsistent error shapes and handling webhook updates that arrive out of order or twice.
  • Made submission idempotent at the UI level, so a double-click never becomes a double-payment.
  • Established the internal component library and CSS architecture now used across all B2B surfaces. Make the day-to-day frontend architecture calls on this product, with larger decisions reviewed alongside our senior frontend.

[TypeScript, React Native, Next.js, React, TanStack Query, CSS, Tailwind, Netlify, Git]

General Affairs — BNI Syariah before the code · classified

mei 2018 — feb 2020 · jakarta

  • Was a real bank employee. Wore the lanyard. Attended the meetings. Said "noted" a lot.
  • Accidentally became the office IT guy because I could restart a router.
  • Left to write code. Best career pivot since sliced bread.

## contact // got something worth building?

Currently open to roles and the occasional freelance project that doesn't bore me. Hit my email — I reply before you finish your second coffee.

email
[email protected]
whatsapp
wa.me/6285793579883 ↗
linkedin
/in/elvanrafif ↗
github
@elvanrafif ↗