Skip to content

Open to roles · Jakarta, Indonesia

RAFLI.

Fullstack Developer

Backend-leaning, shipped end-to-end.
Go · TypeScript · Postgres · Docker

Selected Work

End-to-end systems you can inspect — every repo public, documented, and tested.

01Open source

LIMS-GO

A laboratory information management system — Go backend, React frontend, full containerised infrastructure and CI/CD.

problem
Laboratories need a system to manage samples, results and users, but most off-the-shelf options can't be self-hosted or reasoned about.
approach
Built a Go backend with a clean handler → service → repo layering, a React (TanStack) frontend, and Postgres + Redis + MinIO behind Docker Compose. Added role-based access, seedable data, CI on PRs, automated image builds and a manual VPS deploy flow.
result
A self-hosted fullstack system with documented architecture (CONTEXT.md, AGENTS.md), independent backend/frontend versioning, and a production deploy runbook.
GoTypeScriptReactPostgreSQLRedisMinIODocker
02Open source

moodle-openrouter-plugin

An AI provider plugin routing Moodle's core_ai subsystem to OpenRouter — one API key for hundreds of models.

problem
Moodle's new AI subsystem needs provider plugins, but writing one against a pre-release (5.3dev) API is a moving target.
approach
Implemented a provider plugin pinning a specific Moodle commit, wiring three text actions through OpenRouter with per-action model/endpoint settings and a privacy-safe hashed user id. Shipped a full PHPUnit suite and an executable VPS deployment runbook.
result
A working, tested provider plugin — 26 tests, 152 assertions all green — and the docs to deploy it behind nginx + TLS.
PHPMoodleOpenRouter
Client Work

Production systems, shipped and live.

proprietaryBiosync Lab Portal — Biosync Laboratorium Indonesia

Biosync Lab Portal

Biosync Laboratorium Indonesia

A full-stack platform for an ISO 17025 accredited lab — public site, customer portal and admin dashboard in one.

Build notes
problem
A lab needed both a public-facing site and an internal operations platform, with customers reserving samples and downloading certificates.
approach
Built a Next.js app covering public landing (SEO, i18n EN/ID, quotations), a customer portal (reservations, digital certificates, real-time chat, feedback) and an admin dashboard with 9 hierarchical roles. Added JWT auth over HTTP-only cookies, email verification, reCAPTCHA Enterprise and auto-generated PDF certificates.
result
A single production system used by the lab's staff and customers, with certificates generated on demand.
Next.js 15Express.jsTypeScriptPrismaMariaDBshadcn/uiPuppeteerDockerGCS
proprietaryOnehub Pod Booking Mobile App — Oneject Indonesia

Onehub Pod Booking Mobile App

Oneject Indonesia

A mobile application for booking shared office pods, with smart lock integration and third-party payment support.

Build notes
problem
A shared office provider needed a mobile app for customers to book pods, unlock them via smart locks, and pay through a third-party gateway.
approach
Built a NestJS backend with REST endpoints for booking, user management, and smart lock control. Developed a React Native mobile app for iOS and Android, integrating with the Tuya API for smart locks and Flip for payments. Implemented real-time notifications and booking confirmations.
result
A fully functional mobile app that allows customers to book pods, unlock them using smart locks, and make payments seamlessly.
NestJSReact NativeTuya APIPostgreSQLDockerFlip
Experience

Where I've been, and what I shipped there.

Fullstack Developer · Oneject Indonesia

  • Spearheaded the full-stack development of the Biosync Laboratory test management system using Next.js and TypeScript.
  • Developed an innovative office pod booking platform integrating IoT triggers and payment gateways.
  • Mentored backend developer interns, creating onboarding documentation and enforcing code review standards.
  • Research new technologies and frameworks to improve development efficiency and system performance.
Jun 2025 – Present

Fullstack Developer · Freelance

  • Partnered with stakeholders to design, build, and deploy highly customized web applications using React and Laravel tailored to unique operational workflows.
  • Bridged dynamic React frontend components with efficient Laravel RESTful APIs, maintaining modular folder structures and strict separation of concerns for seamless long-term scaling.
Feb 2025 – Dec 2025

Backend Engineer Intern · DOT Indonesia

  • Developed internal website using nestJs, postgres, docker, redis, and microservice architecture.
Nov 2024 – Dec 2024
Stack & Skills

Tools I reach for, skills I defend in an interview.

Backend

GoNode.jsTypeScriptNestJSPHPPython

Frontend

ReactNext.jsTypeScriptVue.jsTailwind CSSshadcn/ui

Data

PostgreSQLMariaDBRedisMinIOPrisma

Deployment

DockerDocker ComposeGitHub ActionsCloudflareGoogle Cloud Storage
  • API & service design

    Clean handler → service → repo layering in Go and Node.

  • Concurrency & reliability

    Redis-backed sessions, cursor state, dedupe and crash-safe writes.

  • Data & persistence

    SQL schema design, indexing and migration trade-offs.

  • System integration

    Platform plugins (Moodle core_ai) and third-party APIs.

  • Deployment & DevOps

    Docker Compose stacks, CI/CD, VPS + reverse proxy runbooks.

About

Built the way I'd want to inherit it.

I'm Rafli Akhmad Baihaqi, a fullstack developer who leans on the backend but ships across the whole stack. I build systems the way I'd want to inherit them: clean layering, a documented data model, and deployment that's repeatable rather than magical.

The projects I'm proudest of are ones with real constraints — a laboratory management system with role-based access, a Moodle AI plugin pinned against a moving pre-release API, a safety-inspection platform. Those are where the trade-offs live: data modeling, concurrency, and getting it running in production.

I'm currently open to roles and based in Jakarta, Indonesia.