Open to work · Full-timeFull-stack developer — 2026Samut Prakan, TH

Dachchai Thamkhankham

Hi, I'm Fluke. I build the systems people at work open every day — web apps, APIs and the technicians' mobile app — with Claude Code as a teammate. In my spare time I make games and 3D toys.

commits at work
1,818
production systems
08
side projects
25
(01)

Selected work

8 systems the company runs in production. Every screenshot is the real app running on my own machine with fake data — no real customer or employee data ever left the building.

  1. 01Mar 2025 – PresentLead developer1,150+ commits

    NPA asset management system

    JMT · Web admin + API

    The NPA team's end-to-end back office: asset registry, surveys, contractor quotations and bidding, PR/PO, QC & SLA, key tracking, equipment inventory, urgent jobs and dashboards.

    • Own both the web app and the API it shares with the mobile app
    • Fixed slow pages on production: collateral list 18 s → 0.2 s, export 35 s → 4 s
    • A SQL migration + rollback with every release
    • Forgot password, What’s new, auto-assign, Excel / PDF reports
    • Vue 2
    • Vuetify
    • ApexCharts
    • Node.js
    • Express
    • SQL Server
    • Socket.io
    • Playwright
    Read the case study: 89× faster
  2. 02Mar 2025 – PresentModule owner108 commits

    NPA field technician app

    JMT · module in the company Flutter app

    For technicians and field staff: appointments, job lists with SLA, on-site reports (survey, Big Clean, negotiation, QC), key handover with photos, and map pins.

    • QC requires before/after photos, with SLA badges
    • Fixed stuck photo uploads with image resizing + timeouts
    • Flutter
    • Dart
    • Riverpod / GetX
    • Longdo Map
    • Camera

6 more systems

  1. 03Nov 2024 – Nov 2025197 commits

    JaiiHai — employee coupon & credit system

    Jaymart group · Web admin + API · Lead front-end · co-developed API

    Group employees get coupons and credit to spend at partner shops. Admins manage branches, shops, coupon categories and types, entitlements, credit and merchant payouts.

    • Dashboard of coupon and credit usage
    • Coupon / credit import from Excel, PDF slips and QR codes
    • Nuxt 3
    • Vuetify
    • Tailwind
    • Express
    • SQL Server
    • ApexCharts
  2. 04Jan 2026 – Present96 commits

    Loan blacklist check system

    JMT · Web + API · Lead developer

    ID-card lookup to check status before a loan is approved, used by staff and partners, with a dashboard for users, companies, branches and search history.

    • OTP 2FA, login limits, password expiry / no reuse, email password reset
    • New front-end in React + TypeScript
    • E2E tests with Playwright
    • React 19
    • TypeScript
    • Vite
    • Tailwind
    • Express
    • SQL Server
    • JWT
  3. 05Aug 2025 – Jun 2026150+ commits

    Legal enforcement: asset seizure workflow

    JMT · Legal department · Module developer

    Seizure workflow after a lawsuit: pending → awaiting approval → approved / rejected / cancelled, with export and a pre-seizure review page.

    • Sped up the Review Detail page
    • Nuxt 2
    • Nuxt 3
    • Vuetify
    • Tailwind
    • Express
    • SQL Server
  4. 06Nov 2024 – Jan 202611 commits

    Legal case calendar

    JAM / JK Asset · asset management system · Feature owner

    A monthly calendar of filing, witness and inquiry hearings for the legal team; click a hearing to see that day's cases.

    • Nuxt 3
    • Vuetify
    • Express
    • SQL Server
  5. 07Apr 2025 – Oct 202617 commits

    BaanBaan Property website

    JJ Property · property sales website · Contributor

    SSR property sales site: improved the contact page, consent / login, UAT v1.2, and the rebrand to BaanBaan Property.

    • Nuxt 3
    • Vuetify
    • Tailwind
    • i18n
    • SSR
  6. 08Jun – Aug 2026

    IT department leave calendar

    JMT · internal tool · Solo

    A 12-month leave calendar for the IT team with automatic sync, public holidays, daily history, and each person can only book their own leave.

    • React
    • Vite
    • Express
    • Supabase
(02)

AI-assisted engineering

I use Claude Code as a teammate on real work every day — not just for Q&A, but set up to work within the team's rules, and I check every result before it ships.

603/ 1,371

commits in my 6 main work repos with Claude as co-author (44%) since May 2026

  • CLAUDE.md × 6 repo
  • Sub-agents
  • Skills
  • Rules
  • Hooks
  • Plugin
  • Git worktree
  • Playwright E2E
~/work — the .claude setup I wrote
$ tree -a .claudereact-blacklist/├─ CLAUDE.md  # hard rules · stack · architecture└─ .claude/   ├─ agents/orchestrator.md   ├─ rules/api-and-auth.md   ├─ rules/ui-and-routing.md   └─ skills/scaffold-page/SKILL.md project-os/  (Claude Code plugin)├─ commands/project-os.md  # /project-os├─ agents/  architect · backend · database│          debugger · frontend · performance│          security · tester · documentation└─ templates/hooks/  before-task → before-commit → after-release$ 
project-os on GitHub

What Claude helped with

Summarised from 656 commits Claude co-authored (May–Oct 2026, every repo, including unmerged branches). Every example and timing comes from a real commit message. My part: deciding what the system has to do, setting the AI's boundaries, and proving the result before it ships.

  1. 01

    Finding out why pages are slow

    Claude helps me trace SQL Server queries to the step doing more work than it should; I time before/after on the same data and compare results row by row to prove nothing changed.

    Collateral list
    18 s now 0.2 s
    Collateral export
    35 s now 4 s
    Eviction case page
    33.8 s now ~2 s
    Read the case study: 89× faster
  2. 02

    Building whole features end to end

    From Vue screens and Node.js APIs to stored procedures and screens in the technicians' Flutter app.

    • Case expediting + eviction case intake: from mock-ups to fully wired to the real API
    • Auto-assign by area: 7 new endpoints matching district → province → region, then workload
    • QC & SLA: the SLA clock starts when a repair is ordered, with reports and Excel export
  3. 03

    Fixing bugs that only happen in production

    Bugs that UAT never showed but users hit in production.

    • A 500 error from a tempdb collation mismatch between production and UAT — fixed, with 45/45 rows matching
    • The assign screen over-counted (3,738 shown vs 3,492 real) because of a JOIN on a non-unique key
    • Technician app: the job form hung after adding keys — fixed with image resizing + timeouts
    • Blacklist system: the password-reset link in the email bounced back to the login page
  4. 04

    SQL that can always be rolled back

    Every migration ships with a ROLLBACK script and a README of the run order, tried on dev before production.

    • Test-data scripts for case expediting, each with its undo script
    • QC SLA test data covering every state
    • A RUN_ORDER checklist for every script
  5. 05

    Docs and APIs for other systems

    The work that usually gets postponed now ships with the code.

    • Opened the legal-cheque API to other systems, with per-system permissions and docs
    • A guide to connecting NPA with the LAW_JMT legal system
    • CLAUDE.md + 8 hard rules in the NPA web, API and app repos
  6. 06

    Testing and keeping evidence

    Proving the new thing works and the old things still do.

    • Playwright scripts that screenshot the intake page and the expediting dialogs
    • Whole-row JSON comparison against the old query before switching
    • Read-only test scripts that call the real endpoints

How I use Claude and still ship work I can trust

  1. 01

    Context before instructions

    Every main repo has a CLAUDE.md I wrote: hard rules, architecture, status codes and team conventions, so Claude's code fits the existing code on the first pass.

  2. 02

    Specialist agents

    Separate rules for API and UI, a skill for scaffolding new pages and an orchestrator for task order — grown into project-os, a plugin with 9 specialist agents.

  3. 03

    Parallel work with worktrees

    Features and hotfixes live in separate git worktrees (37 on NPA), so an urgent production fix never mixes with unfinished features.

  4. 04

    Verify before every ship

    AI writes fast, but I don't ship what isn't proven. Every feature has Playwright E2E with videos and Excel reports (NPA: 35 videos, 58 reports), and every release has a SQL migration + rollback.

(03)

Playground

25 things I build after work. Some are playable, some are still prototypes, but every image is a real screen from the program.

P/01

Ghost OS

Works

A desktop OS in the browser with a virtual file system, a terminal and an AI assistant that takes Thai commands; can be packaged as a desktop app with Tauri.

React 19 · Vite · Tailwind 4 · Tauri v2

P/02

Airi VTuber

Works

An AI VTuber stream room: a 3D VRM avatar with gestures and expressions, chatting through a local AI model (sample model Alicia Solid © DWANGO).

React 19 · Three.js · three-vrm · Vite

P/03

CodeArchaeologist

v0.6

Static analysis for legacy code: a graph of how files, APIs and database tables relate, with risk levels.

Python · FastAPI · networkx · tree-sitter · Cytoscape.js

P/04

HunMaKa

Prototype

A Thai (SET) stock screener by P/E, P/B and dividend, with an index dashboard and DCA planner (screenshots use the app's sample data).

React · TypeScript · Vite · Zustand · Recharts

P/05

AINIYAY

Works

An offline writing room for Thai novels with autosave and an AI assistant via Ollama.

HTML / CSS / JS · localStorage · Ollama

P/06

Duck Meeting Room 3D

Win / Mac builds

A multiplayer 3D meeting room where everyone is a fluffy duck: voice chat, screen sharing to an in-room TV, a whiteboard and LAN room discovery.

Godot 4 · GDScript · Shader · LAN

P/07

Priksew: Mossbound Online

Playable

A pixel RPG in the browser: a chili-powered brawler hero, NPC quests, an inventory, a blacksmith and bosses.

Canvas · Web Audio · Vanilla JS

P/08

Aegis Duel

Playable

A 3D fighting game in the browser, solo or 2 players over LAN, with combos and finishing moves.

Three.js · cannon-es · WebSocket

P/09

Office Saboteur

Playable

A Werewolf-style find-the-spy game set in a Thai office: walk around a pixel office, join by QR code, play with bots.

Node.js · Socket.io · Pixel Art

P/10

Pirate Seas 3D

Playable

A 3D pirate ship game in the browser: name your captain and flag, sail, fire cannons and take on missions at sea.

Three.js · Vite

P/11

Nakhon Jiw (Tiny City)

Playable

A tiny 3D city builder: lay roads and zones, manage a budget, with a day–night cycle.

Three.js · Single HTML file

P/12

Hollow Depths

Playable

A 3D horror game exploring a dungeon by flashlight to free trapped spirits, with a minimap.

Three.js · Vite

P/13

Harvest Hollow

Playable

A farming game in the browser: till, plant, water, wait for crops day by day, and go fishing.

Canvas · Vanilla JS

P/14

Mini3D

Works

A small 3D modelling tool in the browser with an outliner, move / rotate / scale gizmos and GLB export.

Three.js · Vite

P/15

Color Phantom

Prototype

A multiplayer hide-and-seek game where hiders paint themselves to blend into the scene; client / server laid out as a monorepo.

React 19 · Phaser 3 · Colyseus · Prisma

P/16

Chibi Knight Animation

Asset

A 60 fps chibi knight animation set (idle / slash) with metadata and a viewer.

Sprite Animation · GIF / MP4

P/17

Taskio

Prototype

A project command center: today's work dashboard, a sprint Kanban board, velocity reports and an AI Copilot panel.

Next.js 16 · React 19 · Tailwind 4

P/18

Matcha

Works

A friend-finding app by interests and distance: set up a profile, pick interests, find people nearby and chat in real time.

Expo / React Native · Socket.io · Express

P/19

3DMeet

Prototype

A 3D virtual office in the browser: walk between meeting rooms with WASD, with a minimap and meeting controls.

Next.js · React Three Fiber · Three.js · LiveKit

P/20

Captain Bean POS

Prototype

A coffee shop POS: add items to the cart, manage tables, and track ingredient stock with low-stock alerts.

Next.js · TypeScript · Tailwind

P/21

WebRTC P2P Cinema

Works

A P2P video call room for watching movies together in cinema mode, with live chat and a real-time synced tic-tac-toe game.

WebRTC · Socket.io · Express 5

P/22

VIBE.OS

Works

A focus space in the browser with a Pomodoro timer, ambient sounds and notes.

HTML / CSS / JS

P/23

Room rental manager

Prototype

Room status, rent, water and electricity bills, outstanding balances, and payment in installments.

Next.js · Tailwind · JSON DB

P/24

AstroTarot

Prototype

A tarot reading site: pick a spread, draw from a fanned deck, then flip the cards for a past–present–future reading.

Next.js · React 19 · CSS Animation

P/25

Café POS

Works

A café point of sale: pick items, discounts, VAT, payment, change, and PDF receipts.

React · Vite · Tailwind · jsPDF

(04)

About me

I like building things people actually use, and digging into why a system is slow. Every release goes out with a SQL migration and a rollback ready, because I've had the day I needed one.

Name
Dachchai Thamkhankham (Fluke)
Work
Full-stack Developer, JMT
Studied
Computer Science, Dhonburi Rajabhat University
Based in
Samut Prakan, Thailand

Daily

Vue 2/3 / Nuxt / Vuetify / Node.js / Express / SQL Server / Flutter

Proficient

React / TypeScript / Next.js / Tailwind / Fastify / Supabase / Playwright / Socket.io

AI workflow

Claude Code / CLAUDE.md / Sub-agents / Skills / Hooks / Plugins / Git worktree

After hours

Godot / Unity / Three.js / Phaser / WebRTC / Tauri / Ollama

(05)

Experience

  1. Oct 2024 — Present

    Full-stack Developer

    JMT Network Services

    • Look after almost all of the NPA system: web admin, API and the technician app module
    • Built the JaiiHai employee coupon system and the loan blacklist check system
    • Modules in the legal system, the case calendar, Cheque Portal and the BaanBaan website
  2. Jul — Nov 2023

    IT Support (intern)

    Saim Senater Co., Ltd.

    • Wrote a spare parts and equipment management system in PHP + Bootstrap
    • Fixed computers and printers, and chased down users' problems
  3. Graduated 2024

    B.Sc. Computer Science

    Dhonburi Rajabhat University, Samut Prakan

    • GPA 3.26

Open to workOpen to full-time Full-stack / Front-end roles · on-site or hybrid, Bangkok – Samut Prakan

Hiring, have a project, or want to talk about a slow system? Drop me a line.

dachchai.t@gmail.com