Systems that hold under load.

Backend engineer building data-heavy services: POS and ERP integration, financial reconciliation, and forecasting that operations can plan against.

Selected work

Sales Forecasting Layer

Data engineering, modelling

A bags and apparel business planned stock and budget from spreadsheets, with no view of what demand was likely to do next.

dbt marts in ClickHouse feed a Python worker, a Prophet baseline with LightGBM models, and a FastAPI serving layer, writing daily 0 to 6 month and monthly 6 to 24 month horizons back into the warehouse. Every modelling decision is recorded with the evidence behind it.

  • ClickHouse
  • dbt
  • Python
  • Prophet
  • LightGBM
  • FastAPI
jowarung POS

Schema design, full stack

A retail business ran purchasing, stock and cash across spreadsheets, so cost of goods and the real stock position were both estimates.

A Next.js and Prisma application on Postgres covering purchase orders, an inventory ledger with stock opname, sales transactions, cash movements, and price plus cost history, with an audit log on every write.

  • Next.js
  • Prisma
  • PostgreSQL
  • Tailwind CSS
  • Cloudflare R2
PhotoBox

Full stack

Event photo booth sessions ended with guests waiting for someone to copy files off a laptop.

Next.js on Supabase for database and storage. Sessions hold their photos, a QR code per session and an email download link hand them to guests, and the download page needs no account.

  • Next.js
  • Supabase
  • Tailwind CSS
  • Resend
  • QR codes
Invitation Platform

Full stack, multi-tenant

Invitations sent as a static image cannot collect RSVPs or keep a guest list in one place.

Next.js with Prisma and NextAuth: themes per invitation, a guest list with RSVP, comments and an event schedule, with forms validated end to end by zod and React Hook Form.

  • Next.js
  • Prisma
  • NextAuth
  • Radix UI
  • zod

Capabilities

Backend Systems

Node.js services with a clean controller and service split, REST and webhook integrations, and background workers that survive a restart.

  • Node.js
  • Express
  • Workers
  • REST APIs

Data & Databases

SQL-first modelling and query work across MySQL, Postgres and ClickHouse, from schema design through aggregation at volume.

  • MySQL
  • MariaDB
  • PostgreSQL
  • Prisma
  • ClickHouse

Financial & Reconciliation

Money flows that have to balance: purchase and sales ledgers, cost history, and exports that tie back to the source system.

  • Reconciliation
  • Ledgers
  • ERP Integration
  • Reporting

Pipelines & Export

ELT into the warehouse, dbt marts, and the formatted outputs operations asks for: XLSX, CSV and PDF pipelines.

  • dbt
  • ClickHouse
  • XLSX
  • CSV
  • PDF

Infrastructure & Delivery

Containers, object storage and CDN delivery, with the unglamorous parts handled: migrations, backups and repeatable deploy paths.

  • Docker
  • Cloudflare R2
  • Vercel
  • NAS and WebDAV

Product & Interfaces

Type-safe interfaces over the same data: Next.js applications, BI dashboards, and the admin screens an ops team actually uses.

  • TypeScript
  • Next.js
  • Tailwind CSS
  • BI Dashboards

Stack

Approach

  1. Reliability

    Systems that hold under pressure, not just in a demo.

  2. Clarity

    Code the next engineer can read, extend and trust.

  3. Consistency

    Steady progress over bursts of unfocused effort.

  4. Curiosity

    Actively exploring new tools and better approaches.

Contact

Open to backend and data engineering roles, and to contract work on systems that have to be right: ledgers, reconciliation, integrations.