Full-Stack Developer & Product Engineer

Hi, I'm Nic

I clarify messy requirements, sketch the architecture, and ship full-stack web apps — from client builds to products I run myself.

Technical notes

Technical notes with sequence diagrams — for the full story behind the bullets.

How I work

  1. 01

    Understand the rule

    Clarify requirements with stakeholders before coding. When specs and reality diverge, confirm scope early — don't build on wrong assumptions.

  2. 02

    Make it legible

    Workflow and sequence diagrams, state models, and scoped tasks that everyone can review before the big build.

  3. 03

    Ship and maintain

    Pragmatic stack choices, clean API and UI boundaries, and refactors that fix once across roles and surfaces.

Selected work

  • Multi-Seller Marketplace Channel

    Added a multi-seller shop channel to an existing marketplace app: seller onboarding to refunds, with stock and money kept correct under concurrency and late payment events.

    Read case study →

    Laravel, MySQL

  • LokaTech — Internal Operations Platform

    Agency ops monorepo: pricing, scope sign-off, and project-first billing — replaced spreadsheet quote loops and email scope churn.

    Read case study →

    Next.js, Prisma, PostgreSQL

  • What I Applied

    Personal ATS and career prep with JD-grounded Gemini assets and follow-up nudges. Beta: ~50 users; live on Vercel.

    Read case study →

    Next.js, Prisma, PostgreSQL

  • Church Management System

    Events, attendance, outings, and role-based admin — replaced scattered Forms/Sheets for 100+ users.

    Read case study →

    Next.js, Prisma, PostgreSQL

  • Task Management System

    Self-hosted Kanban with voting, comments, and dashboards — used by two startup teams (~5–10 people each).

    Read case study →

    Next.js, Prisma, PostgreSQL

  • Confidential / NDA

    Fee splits, providers, and job recovery

    Percent-plus-fixed fees walk down a partner chain, and a read-only preview shows every level's share before a rate is saved. Already-settled records stay as they were. Each outside provider is one adapter behind a single interface: a pending callback is acknowledged, and only a final status changes state. A background job claims its row before calling out and records the stage and last error, so a retry cannot send twice and a stuck row shows why.

    Revenue splits note →Third-party APIs note →Background jobs note →

    Go, PostgreSQL

  • Confidential / NDA

    Enterprise system turnaround

    Joined mid-flight on a confidential enterprise CRM where logic and expectations had diverged. I stopped build-on-bad-assumptions, realigned scope, translated ambiguity into sequence diagrams and actionable work, and kept front-end architecture moving while advising client syncs on feasibility.

    Finance architecture note →All technical notes →

    Laravel, Angular

Technical notes

Architecture write-ups with diagrams — when you want the how, not just the bullet.

All technical notes →

About

July 2026 – Present

Ocean Hub Management Sdn Bhd

Backend Developer

Own backend features from design to production on commerce and transaction systems. Passed probation early.

  • Multi-seller marketplace channel (NDA): designed (lead-approved) and built a second sales channel on an existing marketplace app: seller onboarding, product variants, cart with stock reservation, one checkout across multiple sellers that stays correct when payment confirmations arrive late or twice, and the full order and refund lifecycle. See full →
  • Fee splits, providers, and job recovery (NDA): percent-plus-fixed fees walked down a partner chain, with a read-only preview of every level's share before a rate is saved and already-settled records left unchanged; each outside provider as one adapter behind a single interface, so a pending callback does not change state; background jobs claim a row before calling out and record the stage and last error, so a retry cannot send twice.
  • Internal operations and reconciliation tools.

Oct 2025 – June 2026 · 8 months

Data Flows Sdn Bhd

Web Developer / Product Engineer

Lead delivery, refactors, and technical BA on enterprise apps; aligned schemas and UI with real finance/ops workflows.

  • Architected Flexible Financial Settlement Engine: Lead dev & technical BA: commission payout redesign — batching, partial line items, locks/state aligned with accounting; cut post-launch finance rework. See full →
  • Engineered 360° Performance Evaluation Module: Owned KPI-linked 360° reviews: auto-assignment, tokenized external access, Angular schema-driven forms + JSONB — new question types via config. See full →
  • Led Frontend Architecture Refactoring: Unified duplicated portals: dynamic forms by route, RBAC-gated shared component library — fixes ship once across admin/agent views. See full →
Apr 2022 – Sept 2025 · 3.5 yearsIndependent Full-Stack Developer

Part-time freelance during university grew into full-time independent delivery — church, task, and booking systems, plus products I still run.

  • Web Development & Maintenance (Apr 2022 – Mar 2024): Landing pages, product catalogs, ongoing maintenance and feature work while completing the degree.
  • Systems & products (Mar 2024 – Sept 2025): HR and badminton booking systems; church, task, and e-commerce platforms; personal applicant-tracking / AI-assisted career prep (What I Applied). Workflows, RBAC, audit trails, voting, DnD task UX, clean API/UI (Next.js, Prisma, PostgreSQL, .NET).
Oct 2020 – Mar 2024

Pursued Software Engineering at University Malaysia Sabah. Self-funded studies while taking on freelance maintenance projects to support tuition.

Education

  • STPM
    St Paul Institution · 2018 – 2019
  • Bachelor of Software Engineering
    University Malaysia Sabah (UMS) · 2020 – 2024
Next.js
React
Prisma
PostgreSQL
Angular
Laravel
Golang
System Design
TypeScript
PHP
Node.js
.NET (C#)
Tailwind CSS
Vercel
GitHub
C++
Java

Outside of work I write on philosophy and shoot photography — both push me to notice what people assume and what they overlook, which carries into how I gather requirements and design interfaces.

Photography on Instagram (@nicholas_loong)

Contact

Happy to chat about backend and product engineering. Easiest reach: email or WhatsApp.

Resume