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 with sequence diagrams — for the full story behind the bullets.
How I work
- 01
Understand the rule
Clarify requirements with stakeholders before coding. When specs and reality diverge, confirm scope early — don't build on wrong assumptions.
- 02
Make it legible
Workflow and sequence diagrams, state models, and scoped tasks that everyone can review before the big build.
- 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.
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.
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.
Next.js, Prisma, PostgreSQL
Church Management System
Events, attendance, outings, and role-based admin — replaced scattered Forms/Sheets for 100+ users.
Next.js, Prisma, PostgreSQL
Task Management System
Self-hosted Kanban with voting, comments, and dashboards — used by two startup teams (~5–10 people each).
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.
Laravel, Angular
Technical notes
Architecture write-ups with diagrams — when you want the how, not just the bullet.
- Seller onboarding and product variants — Shops on existing accounts, two variant axes, per-variant price and stock (NDA).
- Cart and stock reservation — Holds at checkout summary so idle carts do not lock stock (NDA).
- Cancel vs a late payment — One locked path for cancel, a late confirmation, and a background check (NDA).
- Order lifecycle and refunds — Per-seller orders, returns, and idempotent refunds on a shared payment (NDA).
- Multi-level revenue splits — Percent-plus-fixed splits with a read-only preview before settle.
- One interface for many third-party APIs — Adapters, signature checks, and pending versus final callbacks.
- Background job failures — Claim before calling out, and record why a row is stuck so retries stay safe.
- Flexible financial settlement — Finance “shopping cart” batches, consolidated payment vouchers, commission states (NDA).
- 360° performance evaluation — Assignment engine, JSONB, tokenized partner API, schema-driven Angular + mobile Likert layouts.
- Frontend architecture refactoring — Unified dynamic forms, shared library, RBAC across admin and agent portals.
- Full-stack assessment reflection — Pooling, infinite scroll stability, a live merge-order bug, and a transparent post-interview follow-up.
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
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 →
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).
Pursued Software Engineering at University Malaysia Sabah. Self-funded studies while taking on freelance maintenance projects to support tuition.
Education
- STPMSt Paul Institution · 2018 – 2019
- Bachelor of Software EngineeringUniversity Malaysia Sabah (UMS) · 2020 – 2024
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.