Skip to content

jacky@portfolio:~$ whoami

Jacky Lam

> full-stack engineer

Creating high-performance websites that are unique and breathtaking — bringing your ambitions and visions to life.

open for freelance · Melbourne, Australia · AEST (UTC+10)

type help — or just scroll. / focuses, esc collapses.

I'm a full-stack engineer based in Melbourne, Australia. I build and vary in web experiences, APIs, data models, and the odd hard problem that fits no category. I work with clients and teams to bring ambitious ideas to life — from first wireframe to production deploy.

What gets me working late isn't the framework of the week; it's interesting ideas and problems.

If you have an ambitious idea and want it built fast, solid and unlike anything template-shaped — we should talk.

  • ~/stack
  • ├── frontend/
    • ├── react
    • ├── next.js
    • ├── typescript
    • └── tailwind-css
  • ├── backend/
    • ├── node.js
    • ├── rust
    • ├── postgresql
    • ├── redis
    • └── firebase
  • └── devops-and-tools/
    • ├── docker
    • ├── python
    • ├── git
    • └── rest-apis
  • 3 directories, 13 tools

web_apps:Web Apps

End-to-end web applications — from first wireframe to production deploy.

engage: ./contact.sh --service=web_apps
ai_integrations:AI Integrations

LLM-powered features wired into real products: chat, search, automation, agents.

engage: ./contact.sh --service=ai_integrations
backends:Backends

APIs, auth, data models, queues — the parts users never see and always feel.

engage: ./contact.sh --service=backends
systems:Systems

Event-driven architectures, rate limiting, caching, observability — built for scale.

engage: ./contact.sh --service=systems
software:Software

Tools, scripts, integrations, and the odd hard problem that fits no category.

engage: ./contact.sh --service=software

~/projects/selsattire/README.md

running

Sels Attire — luxury apparel hire boutique

An editorial storefront for a womenswear hire boutique: cinematic card-stack landing, thirty-plus look pages, and a hire bag — typography-led and unapologetically fashion.

  • persistent transparent header that themes itself to the active page
  • password-gated admin dashboard with live KPIs, charts, inventory alerts, and a CRM view of customers and enquiries
  • full accessibility pass — keyboard nav, reduced-motion fallback, zero layout shift

next.jstypescripttailwind-cssrecharts

[live demo ↗]

~/projects/project-19/README.md

running

PROJECT-19 — RB19 cinematic showcase

A scroll-driven 3D showcase for Oracle Red Bull Racing's RB19 — the 21-wins-in-a-season car — one continuous camera lap through a black studio garage, hero title to red-glow contact.

  • oversized RB19 title flies off the hero and docks pixel-exact into the glassmorphism nav mid-approach
  • live Three.js scene — 3D car, HDR studio lighting, reflective floor — with the camera keyframed per scene on scroll percentage, GPU-interpolated between slides
  • inertial scroll with magnetic beats: a flick keeps gliding and always settles on a slide, never mid-sweep; no-WebGL browsers get a prebaked frame-scrub fallback

next.jstypescriptthree.jsframer motiontailwind css

[live demo ↗]

~/projects/droba/README.md

in progress

Droba — personal closet management

Catalog everything you own, browse your closet, and get outfit suggestions pulled strictly from what you actually have — nothing you don't own gets suggested.

  • AI vision pre-fills category, color and brand straight from an item photo
  • outfit suggestions constrained to your real closet, each with a rationale
  • wear logging and cost-per-wear tracking per item

react nativeexposupabasepostgresql

[live demo: pending]

~/projects/3lance/README.md

running

3lance — time tracking & billing CLI

A terminal time tracker for freelancers: start and stop timers per project — even several at once — and turn logged hours straight into a billable report or client-ready invoice.

  • concurrent per-project timers backed by SQLite time-chunk records
  • interactive report REPL — query hours and dollar totals by date range
  • CSV invoice export, itemized down to each tracked chunk

node.jssqliteday.js

[live demo: pending]

status: open for freelance

location: Melbourne, Australia · AEST (UTC+10)