Athit Fongkhaimuk · Full Stack Developer | AI Engineer · Bangkok อธิศ ฟองไข่มุกข์ · Full Stack Developer | AI Engineer · กรุงเทพฯ

AI that proves
its work.
AI ที่พิสูจน์
งานตัวเองได้

Full Stack Developer and AI Engineer at River Park Innodigital. I build FastAPI web applications, RAG and LLM workflows, and local-first AI tools — and Luciazero, a discipline layer that makes coding agents show evidence before they say done. Full Stack Developer และ AI Engineer ที่ River Park Innodigital ผมสร้างเว็บแอปด้วย FastAPI, ระบบ RAG และ LLM workflow และเครื่องมือ AI แบบรันในเครื่อง — รวมถึง Luciazero เลเยอร์วินัยที่บังคับให้ coding agent แสดงหลักฐานก่อนบอกว่างานเสร็จ

Athit Fongkhaimuk, portrait in a white shirt and round glasses

Selected workผลงานที่เลือกมา

Each entry says what the problem was, how it was solved, and where to check. แต่ละงานบอกว่าโจทย์คืออะไร แก้อย่างไร และไปตรวจได้ที่ไหน

← Main menuเมนูหลัก

2026 · River Park Innodigital · client project

Thai Sign Language translator ระบบแปลภาษามือไทย

Two-way AI translation: signs to Thai text, Thai text to a signing avatar แปลสองทิศทางด้วย AI: ท่ามือเป็นข้อความไทย และข้อความไทยเป็นอวตารทำท่ามือ

  • Company project for a Thai public university — internal reposงานบริษัทสำหรับมหาวิทยาลัยรัฐ — repo ภายใน
  • แปลภาษามือไทย Public app that runs on this AI stack (app UI by the mobile team)แอปที่เปิดใช้จริงบน AI stack นี้ (ตัวแอปทำโดยทีม mobile)
  • App Store ↗
  • Google Play ↗
Problemโจทย์
Thai Sign Language has its own grammar and almost no public data. The recognizer has to work for signers it has never seen, and production runs on CPU-only servers. ภาษามือไทยมีไวยากรณ์ของตัวเองและแทบไม่มีข้อมูลสาธารณะ ตัวจำท่าต้องใช้ได้กับคนที่ไม่เคยอยู่ในชุดเทรน และเซิร์ฟเวอร์ production มีแค่ CPU
Approachวิธีทำ
Recognition — a 1.21M-parameter Transformer over MediaPipe landmarks (the server never sees video), a 1,000-word vocabulary, and an ensemble exported to ONNX; feature changes were tested on held-out signers with paired significance tests, and dead ends were logged as NO-GO. Language — Gemma-3-12B fine-tuned with QLoRA to translate Thai ⇄ sign gloss in one model, on 2,038 pairs built with sign-language teachers (818 teacher-reviewed), served on vLLM. Serving — a gRPC orchestrator on a multi-process cluster, plus a Sign RAG that maps each sentence to a 1,012-word avatar motion library in about 0.6 ms; an LLM rescorer stayed off after held-out tests showed it broke more than it fixed (28 vs. 26). Data — teacher review, guided recording, and Editor → Verify → teacher tools, including a consent-and-QC portal for collecting test clips from new signers. จำท่ามือ — Transformer ขนาด 1.21M พารามิเตอร์บน MediaPipe landmarks (เซิร์ฟเวอร์ไม่เคยเห็นวิดีโอ) คลังคำ 1,000 คำ และ ensemble ที่ export เป็น ONNX ทุกการเปลี่ยนฟีเจอร์ทดสอบกับผู้แสดงที่กันไว้ด้วยสถิติแบบจับคู่ และบันทึกทางตันเป็น NO-GO ภาษา — fine-tune Gemma-3-12B ด้วย QLoRA ให้แปลไทย ⇄ gloss ภาษามือในโมเดลเดียว จากข้อมูล 2,038 คู่ที่สร้างร่วมกับครูภาษามือ (ครูตรวจแล้ว 818 แถว) และ serve บน vLLM ระบบให้บริการ — gRPC orchestrator แบบ multi-process cluster พร้อม Sign RAG ที่จับคู่ประโยคกับคลังท่าอวตาร 1,012 คำในเวลาประมาณ 0.6 ms ส่วน LLM rescorer ปิดไว้เพราะทดสอบกับชุดกันไว้แล้วทำพังมากกว่าแก้ได้ (28 ต่อ 26) ข้อมูล — เครื่องมือให้ครูตรวจท่า อัดคลิปแบบมีไกด์ และวงจร Editor → Verify → ครู รวมถึง portal ที่มีขั้นตอนยินยอมและ QC สำหรับเก็บคลิปทดสอบจากผู้แสดงใหม่
Resultผลลัพธ์
On 31 signers the model never saw (2,336 quality-checked clips, 588 words): 73.5% top-1 and 91.3% top-5. On two professional interpreters outside the training set (1,200 clips, 300 words): 86.8% top-1 and 95.4% top-5. One 16-core CPU server held 100 concurrent camera streams at 1,084 frames/s, p50 102 ms, with zero errors over five minutes. The translation LLM serves 68.4 requests/s at 96 concurrent and scores 62.4% strict exact match against teacher references on 468 held-out rows. กับผู้แสดง 31 คนที่โมเดลไม่เคยเห็น (2,336 คลิปที่ผ่าน QC, 588 คำ): ถูกอันดับ 1 ที่ 73.5% และอยู่ใน 5 อันดับแรก 91.3% กับล่ามอาชีพ 2 คนที่ไม่อยู่ในชุดเทรน (1,200 คลิป, 300 คำ): 86.8% และ 95.4% เซิร์ฟเวอร์ CPU 16 core เครื่องเดียวรับกล้อง 100 สตรีมพร้อมกันที่ 1,084 เฟรม/วินาที p50 102 ms ไม่มี error ตลอด 5 นาที ส่วน LLM แปลภาษารับได้ 68.4 คำขอ/วินาทีที่ 96 คำขอพร้อมกัน และตรงกับคำตอบของครูทุกตัวอักษร 62.4% บนชุดกันไว้ 468 แถว
  • PyTorch
  • MediaPipe
  • ONNX Runtime
  • Gemma 3
  • QLoRA
  • vLLM
  • gRPC
  • FastAPI
  • Docker
  • three.js

2026 · open source

Luciazero

Verification-first discipline for coding agents วินัยแบบตรวจสอบก่อนสำหรับ coding agent

Problemโจทย์
Coding agents (Claude Code, Codex CLI) report “done” without proof: false-green verification, dropped scope, and context lost between sessions. Coding agent (Claude Code, Codex CLI) มักบอกว่า “เสร็จ” โดยไม่มีหลักฐาน — เขียวปลอม ตกหล่นขอบเขตงาน และบริบทหายระหว่าง session
Approachวิธีทำ
A 9-rule doctrine, 13 skills (plan, debug, done, retro, relay…), an adversarial reviewer agent, and fail-open hooks that mark work as unverified until a real command passes. Installs as a Claude Code plugin or via npx luciazero. หลักการ 9 ข้อ, สกิล 13 ตัว (plan, debug, done, retro, relay…), reviewer agent ที่ตั้งใจหาข้อโต้แย้ง และ hook แบบ fail-open ที่ติดป้าย unverified จนกว่าจะมีคำสั่งจริงผ่าน ติดตั้งเป็นปลั๊กอิน Claude Code หรือ npx luciazero
Resultผลลัพธ์
In an A/B eval on planted-bug coding tasks — same model and harness, with and without Luciazero, scored by offline graders that CI itself tests against solved, unfixed, and gamed trees — Claude Sonnet passed 39/50 runs vs. 23/50 bare (+32pp, 10 tasks × 5 runs) and Claude Haiku 36/60 vs. 27/60 (+15pp). Published on npm with CI, with runnable demos (status line, cross-session relay, two-agent bus) that exercise the real hooks with no model or API key. ทดสอบแบบ A/B บนโจทย์โค้ดที่ฝังบั๊กไว้ — โมเดลและ harness เดียวกัน ต่างกันแค่ติดตั้ง Luciazero หรือไม่ ตรวจด้วย grader ออฟไลน์ที่ CI ทดสอบเองว่าแยกได้ทั้งงานที่แก้ถูก งานที่ยังไม่แก้ และงานที่โกง — Claude Sonnet ผ่าน 39/50 รอบ เทียบกับ 23/50 เมื่อไม่ติดตั้ง (+32pp, 10 โจทย์ × 5 รอบ) และ Claude Haiku 36/60 เทียบกับ 27/60 (+15pp) เผยแพร่บน npm พร้อม CI และมีเดโมที่รันได้จริง (status line, relay ข้าม session, bus สองเอเจนต์) โดยไม่ต้องใช้โมเดลหรือ API key
  • Python
  • Node.js
  • Claude Code
  • Codex CLI
  • MCP
  • SQLite
  • GitHub Actions

May – Oct 2025 · NT internship · senior project · published 2026

NT promotion assistant ผู้ช่วยแนะนำโปรโมชั่น NT

RAG + tool-calling assistant for National Telecom packages ผู้ช่วย RAG + tool calling สำหรับแพ็กเกจของ NT

Problemโจทย์
Dozens of Home Fiber, Mobile 5G, and SME packages are hard to compare, and a plain chatbot hallucinates prices. แพ็กเกจ Home Fiber, Mobile 5G และ SME มีหลายสิบแบบ เทียบยาก และแชทบอทธรรมดามักตอบราคามั่ว
Approachวิธีทำ
Guard model (Gemini 2.0 Flash) filters off-topic questions, an orchestrator (Gemini 2.5 Flash) picks search_home_internet or search_mobile_internet, and a RAG layer on Open WebUI retrieves from official PDF/Excel data. FastAPI + PostgreSQL, Google/LINE OAuth, TOTP 2FA, admin dashboard. Guard model (Gemini 2.0 Flash) กรองคำถามนอกเรื่อง, orchestrator (Gemini 2.5 Flash) เลือกเครื่องมือ search_home_internet หรือ search_mobile_internet และชั้น RAG บน Open WebUI ดึงข้อมูลจาก PDF/Excel ทางการ FastAPI + PostgreSQL, OAuth Google/LINE, 2FA แบบ TOTP, แดชบอร์ดผู้ดูแล
Resultผลลัพธ์
Published as first author in the Maejo Information Technology and Innovation Journal, Vol. 12 No. 3 (Sep – Dec 2026). Evaluated on 50 conversations with an LLM-as-a-judge plus rule-based scoring on a 1 – 5 Likert scale: politeness 4.60, relevance 4.28, readability 4.98. The repo also ships Ragas scripts and a like/dislike feedback loop. ตีพิมพ์เป็นผู้เขียนหลักในวารสารแม่โจ้เทคโนโลยีสารสนเทศและนวัตกรรม ปีที่ 12 ฉบับที่ 3 (ก.ย. – ธ.ค. 2569) ประเมินจากบทสนทนา 50 ชุดด้วย LLM-as-a-judge ร่วมกับเกณฑ์เชิงโครงสร้าง (Likert 1 – 5): ความสุภาพ 4.60 ความตรงประเด็น 4.28 ความง่ายในการอ่าน 4.98 ใน repo ยังมีสคริปต์ Ragas และ feedback loop แบบ like/dislike
  • FastAPI
  • PostgreSQL
  • Gemini
  • Open WebUI
  • Ragas
  • LangChain
  • Tailwind

2026 · River Park Innodigital · internal

Team AI tools เครื่องมือ AI ของทีม

Riverflow task board with a Discord AI agent · RiverParkAI chat platform บอร์ดงาน Riverflow พร้อม AI agent บน Discord · แพลตฟอร์มแชต RiverParkAI

  • Internal tools — no public repoเครื่องมือภายใน — ไม่เปิด repo สาธารณะ
Problemโจทย์
The team needed one place to assign and review work that it already reads in Discord, and an internal chat platform for trying local and self-hosted LLMs on its own documents. ทีมต้องการที่เดียวสำหรับมอบหมายและตรวจงานที่เชื่อมกับ Discord ซึ่งทีมอ่านอยู่แล้ว และต้องการแพลตฟอร์มแชตภายในไว้ลอง LLM ในเครื่องและ LLM ที่โฮสต์เองกับเอกสารของทีม
Approachวิธีทำ
Riverflow — a FastAPI + PostgreSQL + React task board (Kanban, a lead review gate before Done, calendar, leave requests) with a Discord agent running a local Gemma model through Ollama. An MCP bridge lets the agent read projects, overdue and waiting work, and draft tasks; the create-issue tool was removed so model-invented work never lands on the real board, and the twice-daily digest is built by code, not by the model. RiverParkAI — Next.js + AI SDK chat with streaming, tool calling, and agent delegation (writer / coder / researcher / planner); switchable Ollama, vLLM, and LM Studio providers; and RAG over uploaded PDF/DOCX with Thai-aware chunking, bge-m3 embeddings, and pgvector. Riverflow — บอร์ดงาน FastAPI + PostgreSQL + React (Kanban, ด่านให้ lead อนุมัติก่อน Done, ปฏิทิน, ฟอร์มลา) พร้อม agent บน Discord ที่รัน Gemma ในเครื่องผ่าน Ollama มี MCP bridge ให้ agent อ่านโปรเจกต์ งานค้าง งานที่รอ และร่างงานได้ แต่ถอดเครื่องมือสร้าง issue ออก เพื่อไม่ให้งานที่โมเดลคิดเองไปอยู่บนบอร์ดจริง และสรุปงานเช้า-เย็นสร้างด้วยโค้ด ไม่ให้โมเดลเขียน RiverParkAI — แชต Next.js + AI SDK แบบ streaming มี tool calling และแบ่งงานให้ agent ย่อย (writer / coder / researcher / planner) สลับ provider ได้ระหว่าง Ollama, vLLM และ LM Studio และทำ RAG กับไฟล์ PDF/DOCX ที่อัปโหลดด้วยการตัด chunk แบบเข้าใจภาษาไทย, embedding bge-m3 และ pgvector
Resultผลลัพธ์
Riverflow runs in production for an 8-person team, with Discord as the main surface: issue threads, inbox relay, and morning/evening digests. RiverParkAI doubled as the test harness for the sign-language translation LLM. Riverflow ใช้งานจริงในทีม 8 คน โดยมี Discord เป็นช่องทางหลัก: thread ต่อ issue, ส่งต่อแจ้งเตือน และสรุปงานเช้า-เย็น ส่วน RiverParkAI ใช้เป็นเครื่องมือทดสอบ LLM แปลภาษามือด้วย
  • FastAPI
  • PostgreSQL
  • React
  • MCP
  • Ollama
  • Discord
  • Next.js
  • AI SDK
  • pgvector
  • bge-m3

2025 – 2026 · personal

Lucia

AI companion with voice, memory, and a VTuber body AI companion ที่มีเสียง ความจำ และร่าง VTuber

  • Private project — no public repoโปรเจกต์ส่วนตัว — ไม่เปิด repo สาธารณะ
  • TTS benchmark ↗
Lucia, the illustrated mascot
Problemโจทย์
A companion that can talk in Thai, English, and Japanese, remember past conversations, and appear on stream — without sending every word to a cloud service. อยากได้ companion ที่คุยได้ทั้งไทย อังกฤษ ญี่ปุ่น จำบทสนทนาเก่าได้ และโผล่บนสตรีมได้ — โดยไม่ต้องส่งทุกคำขึ้นคลาวด์
Approachวิธีทำ
Python core with switchable Gemini / local LLM, Qwen3-TTS and VITS-Thai voices with RVC conversion, ChromaDB long-term memory, wake-word listening, VTube Studio for the avatar, Discord and YouTube integrations, and a Mineflayer bot so she can play Minecraft. แกน Python สลับได้ระหว่าง Gemini / LLM ในเครื่อง, เสียงจาก Qwen3-TTS และ VITS-Thai ผ่าน RVC, ความจำระยะยาวด้วย ChromaDB, wake word, VTube Studio สำหรับอวตาร, เชื่อม Discord และ YouTube และบอท Mineflayer ให้เล่น Minecraft ได้
Resultผลลัพธ์
Runs on a local LLM through Ollama or on Gemini, with a TH/EN UI, translation with automatic language detection, and text-to-speech — no cloud required for the local mode. A screening benchmark of 7 Thai TTS configurations plus an Edge TTS baseline (6 sentences × 3 runs per configuration, scored by ASR character error rate and speaker similarity to a held-out Lucia clip) found F5-TTS-TH v2 the most intelligible at 0.34% CER and OmniVoice the closest voice match at 0.965; RVC conversion lifted an Edge TTS sample from 0.786 to 0.960 similarity. รันบน LLM ในเครื่องผ่าน Ollama หรือบน Gemini มี UI ไทย/อังกฤษ แปลภาษาพร้อมตรวจจับภาษาอัตโนมัติ และ text-to-speech — โหมดในเครื่องไม่ต้องพึ่งคลาวด์ ทำ benchmark คัดกรองเสียงไทย 7 ชุดตั้งค่า เทียบกับ Edge TTS เป็นเส้นฐาน (ชุดละ 6 ประโยค × 3 รอบ วัดด้วย character error rate จากการถอดเสียงด้วย ASR และความคล้ายเสียงเทียบกับคลิป Lucia อีกคลิปที่ไม่ได้ใช้ clone) พบว่า F5-TTS-TH v2 ฟังชัดที่สุดที่ CER 0.34% ส่วน OmniVoice เสียงใกล้ Lucia ที่สุดที่ 0.965 และ RVC ช่วยให้เสียงจาก Edge TTS คล้าย Lucia ขึ้นจาก 0.786 เป็น 0.960
  • Python
  • Ollama
  • Gemini
  • Qwen3-TTS
  • VITS
  • RVC
  • ChromaDB
  • VTube Studio
  • Node.js

2026 · desktop tools

Local-first AI tools เครื่องมือ AI แบบรันในเครื่อง

PDF Summarizer & Q&A · VDO Editor Auto-Sub PDF Summarizer & Q&A · VDO Editor Auto-Sub

Problemโจทย์
Thai users want to summarize documents and subtitle videos with AI, but cloud tools cost money and leak private files. ผู้ใช้ไทยอยากสรุปเอกสารและใส่ซับวิดีโอด้วย AI แต่เครื่องมือคลาวด์เสียเงินและไฟล์ส่วนตัวรั่ว
Approachวิธีทำ
PDF Summarizer — packaged as a Windows .exe that talks to LM Studio; recommends Typhoon / Qwen2.5 for Thai and bge-m3 embeddings; short or detailed summaries, Q&A grounded in the document, TH/EN UI. Auto-Sub — Next.js front end over a Python + FFmpeg backend that generates Thai subtitles with word-level highlight, headline overlays, TikTok-style pop/fade, and optional LM Studio pass for polishing and auto-emoji. PDF Summarizer — แพ็กเป็น .exe บน Windows คุยกับ LM Studio แนะนำโมเดล Typhoon / Qwen2.5 สำหรับภาษาไทยและ embedding bge-m3 สรุปสั้นหรือละเอียด ถาม-ตอบอิงเนื้อหาในเอกสาร UI ไทย/อังกฤษ Auto-Sub — หน้าเว็บ Next.js บน backend Python + FFmpeg สร้างซับไทยแบบไฮไลต์คำต่อคำ พาดหัวคลิป แอนิเมชันสไตล์ TikTok และเกลาคำ/ใส่ emoji อัตโนมัติผ่าน LM Studio
Resultผลลัพธ์
Both run offline after setup; all data stays on the machine. PDF Summarizer ships as a downloadable release with no Python install required. ทั้งสองตัวทำงานออฟไลน์หลังติดตั้ง ข้อมูลอยู่ในเครื่องทั้งหมด PDF Summarizer แจกเป็น release ดาวน์โหลดได้โดยไม่ต้องติดตั้ง Python
  • Python
  • LM Studio
  • Next.js
  • TypeScript
  • FFmpeg
  • Typhoon
  • bge-m3

More workงานอื่น ๆ

  • GridPass F1 season companion: every session in Bangkok time, live timing from OpenF1, and a planner that finds the month or pass with the most Grands Prix per baht — Next.js, tested with Vitest and with Playwright on phone and desktop.แอปคู่หูฤดูกาล F1: ตารางทุกเซสชันเป็นเวลาไทย, live timing จาก OpenF1 และตัววางแผนว่าซื้อ pass เดือนไหนหรือแบบไหนได้จำนวนสนามต่อบาทคุ้มที่สุด — Next.js ทดสอบด้วย Vitest และ Playwright ทั้งบนมือถือและเดสก์ท็อป Live ↗
  • Lucia websiteเว็บไซต์ลูเซีย Scroll-driven 3D page that spends one day with Lucia, one hour per chapter — React, three.js, and three-vrm; the public build ships pre-rendered stills, never the model file.หน้าเว็บ 3D แบบเลื่อนเล่าเรื่องหนึ่งวันกับลูเซีย บทละหนึ่งชั่วโมง — React, three.js และ three-vrm โดย build สาธารณะใช้ภาพที่เรนเดอร์ไว้แล้ว ไม่ส่งไฟล์โมเดลออกไป Live ↗
  • Lucia iPhone appsแอป iPhone ของลูเซีย Three SwiftUI apps: Lucia Idle, a SpriteKit idle game whose rules live in a tested pure-Swift package; Lucia Pocket, a monthly budget tracker also ported to a self-hosted PWA on Node.js + SQLite; and Lucia Gallery, swipe-to-clean for the photo library on PhotoKit.แอป SwiftUI สามตัว: Lucia Idle เกม idle บน SpriteKit ที่แยกกติกาเกมไว้ใน Swift package พร้อมเทสต์, Lucia Pocket แอปคุมงบรายเดือนที่พอร์ตเป็น PWA บน Node.js + SQLite ด้วย และ Lucia Gallery ปัดซ้ายขวาเพื่อเคลียร์คลังรูปผ่าน PhotoKit Private — no public repoส่วนตัว — ไม่เปิด repo
  • MCP VRoid MCP server that drives VRoid Studio, which has no scripting API, through screenshots, OCR, and real mouse and keyboard events. Adds a native macOS backend (Quartz, CGEvent) to nhodges' Linux original; experimental.MCP server ที่ควบคุม VRoid Studio (ซึ่งไม่มี scripting API) ผ่านภาพหน้าจอ, OCR และการกดเมาส์/คีย์บอร์ดจริง เพิ่ม backend สำหรับ macOS (Quartz, CGEvent) ต่อจากเวอร์ชัน Linux ต้นฉบับของ nhodges ยังอยู่ในขั้นทดลอง GitHub ↗ Upstream ↗
  • Videos built from codeวิดีโอที่สร้างด้วยโค้ด The two-minute Luciazero launch film, rendered frame by frame from WebGL scenes and encoded with ffmpeg, and Video Craft, a narrated-video pipeline for HyperFrames listed as a skill on Agensi.หนังเปิดตัว Luciazero ความยาวสองนาทีที่เรนเดอร์ทีละเฟรมจากฉาก WebGL แล้วเข้ารหัสด้วย ffmpeg และ Video Craft ไปป์ไลน์ทำวิดีโอมีเสียงบรรยายสำหรับ HyperFrames ที่ลงขายเป็นสกิลบน Agensi Film ↗ Agensi ↗
  • Creator Hub Self-hosted video publishing hub: upload once, schedule, and publish through each platform's official API from a durable job queue; YouTube works today, while Facebook, Instagram, and TikTok are not connected yet.ระบบ self-hosted สำหรับเผยแพร่วิดีโอ: อัปโหลดครั้งเดียว ตั้งเวลา แล้วโพสต์ผ่าน API ทางการของแต่ละแพลตฟอร์มด้วยคิวงานที่ทนต่อการรีสตาร์ท ตอนนี้ใช้กับ YouTube ได้ ส่วน Facebook, Instagram และ TikTok ยังไม่ได้เชื่อม Private — no public repoส่วนตัว — ไม่เปิด repo
  • SHIFTLINE Mobile tower-defense prototype in Unity 6: enemy routes, unit placement, three-wave battles, a switchable route junction, and a 2.5D board in URP.ต้นแบบเกม tower defense บนมือถือด้วย Unity 6: เส้นทางศัตรู, การวางยูนิต, การต่อสู้สามเวฟ, ทางแยกที่สลับเส้นทางได้ และกระดาน 2.5D บน URP Private — no public repoส่วนตัว — ไม่เปิด repo
  • Lucia Discord Bot Thai Discord bot with 58 slash commands: YouTube/Spotify music and 24/7 radio, an AI chat persona that remembers conversations and translates, AI-generated trivia and mini-games, and a coin/gacha economy.Discord bot ภาษาไทย 58 คำสั่ง: เพลงจาก YouTube/Spotify และวิทยุ 24 ชม., แชท AI ที่มีบุคลิก จำบทสนทนาได้และแปลภาษาได้, trivia ที่ AI สร้างคำถามและมินิเกม, ระบบเหรียญและกาชา Live ↗
  • Shrinkly Image, video, and file compression that runs entirely in the browser — Next.js 15, React 19.บีบอัดรูป วิดีโอ และไฟล์ทั้งหมดในเบราว์เซอร์ — Next.js 15, React 19 GitHub ↗
  • Budgeting GameBudgeting Game Real-time multiplayer game on Next.js with no database — file-locked JSON state and polling.เกมหลายผู้เล่นแบบเรียลไทม์บน Next.js โดยไม่ใช้ฐานข้อมูล — state เป็น JSON ล็อกไฟล์และ polling Live ↗ GitHub ↗
  • Image Size Reducer Drag-and-drop batch image compression with Sharp, deployed on Vercel.ลดขนาดรูปหลายไฟล์แบบลากวางด้วย Sharp บน Vercel Live ↗ GitHub ↗
  • LuciaNote Notes, tasks, calendar, and sheets in one Next.js app that keeps its data in the browser with IndexedDB and localStorage.โน้ต งาน ปฏิทิน และตารางในแอป Next.js เดียว เก็บข้อมูลไว้ในเบราว์เซอร์ด้วย IndexedDB และ localStorage Live ↗ GitHub ↗
  • Fonzu Wiki Wiki for gacha games with posts by game, category, and tag, an admin page, and web push notifications — Next.js + Supabase.วิกิเกมกาชา โพสต์แยกตามเกม หมวด และแท็ก มีหน้าแอดมินและแจ้งเตือนแบบ web push — Next.js + Supabase GitHub ↗
  • MCP tool serverMCP tool server Two FastAPI MCP servers whose tools are database rows (endpoint, method, parameters) edited from a web admin, with a chat page where Gemini picks a tool and calls it.MCP server สองตัวบน FastAPI ที่นิยาม tool เป็นแถวในฐานข้อมูล (endpoint, method, parameters) แก้ได้จากหน้าเว็บแอดมิน พร้อมหน้าแชตที่ให้ Gemini เลือก tool แล้วเรียกใช้ GitHub ↗
  • Manhole Inspector Inspection system for manholes and duct slots: operators and their access rights, inspection records with photos, an audit log, and PDF/Excel reports — FastAPI + SQLAlchemy.ระบบตรวจสอบบ่อพักและช่องท่อร้อยสาย: ผู้ให้บริการและสิทธิ์ใช้ท่อ บันทึกการตรวจพร้อมรูป audit log และรายงาน PDF/Excel — FastAPI + SQLAlchemy Live ↗
  • CZN save-data calculatorตัวคำนวณ save data เกม CZN Thai/English score calculator for Chaos Zero Nightmare save data, in plain HTML and JavaScript.เครื่องคำนวณคะแนน save data ของเกม Chaos Zero Nightmare ภาษาไทย/อังกฤษ เขียนด้วย HTML และ JavaScript ล้วน GitHub ↗
  • Flight price predictionคาดการณ์ราคาตั๋วเครื่องบิน Orange Data Mining + Python; Tree, kNN, Random Forest, Neural Network, AdaBoost, Gradient Boosting compared with Test & Score. University project, 2024.Orange Data Mining + Python เทียบ Tree, kNN, Random Forest, Neural Network, AdaBoost, Gradient Boosting ด้วย Test & Score โปรเจกต์มหาวิทยาลัย ปี 2024 Paper ↗
  • Fish species classificationจำแนกชนิดปลา Decision Tree, Random Forest, Logistic Regression, and XGBoost in Google Colab. University project, 2024.Decision Tree, Random Forest, Logistic Regression และ XGBoost บน Google Colab โปรเจกต์มหาวิทยาลัย ปี 2024 Colab ↗

Experienceประสบการณ์ทำงาน

← Main menuเมนูหลัก
  1. Presentปัจจุบัน

    Full Stack Developer | AI Engineer

    River Park Innodigital Co., Ltd.

    • Built the AI stack of a two-way Thai Sign Language translator — landmark Transformer, QLoRA-tuned Gemma, gRPC serving — project card ↑พัฒนาระบบ AI ของตัวแปลภาษามือไทยสองทิศทาง — Transformer บน landmark, Gemma ที่ปรับด้วย QLoRA, ระบบให้บริการ gRPC — ดูการ์ดโปรเจกต์ ↑
    • Build full-stack web applications and AI features with Python and FastAPI.พัฒนาเว็บแอปแบบ full-stack และฟีเจอร์ AI ด้วย Python และ FastAPI
    • Develop RAG and LLM workflows for contextual search and assistants.พัฒนา RAG และ LLM workflow สำหรับการค้นหาตามบริบทและผู้ช่วยอัจฉริยะ
    • Design APIs, data pipelines, and production integrations.ออกแบบ API, data pipeline และการเชื่อมต่อระบบใน production
  2. May 2025 – Presentพ.ค. 2025 – ปัจจุบัน

    Freelance Full-Stack DeveloperFull-Stack Developer (ฟรีแลนซ์)

    S.A.K Photo Service Ltd.

    • Built a FastAPI web application to manage business operations.สร้างเว็บแอป FastAPI สำหรับจัดการงานธุรกิจ
    • Developed admin dashboards and automated Excel reporting.พัฒนาแดชบอร์ดผู้ดูแลและรายงาน Excel อัตโนมัติ
    • Integrated Gemini for route planning on the map, an admin chat, and a LINE bot; built a YOLO + OpenCV module that checks vehicle condition from photos.เชื่อม Gemini สำหรับวางแผนเส้นทางบนแผนที่ แชตของแอดมิน และ LINE bot และสร้างโมดูล YOLO + OpenCV ตรวจสภาพรถจากรูป
    • Built a login-protected portal for searching the legacy job database (FastAPI, read-only SQLite, Nginx, systemd).สร้างพอร์ทัลค้นหาข้อมูลงานย้อนหลังที่ต้องล็อกอิน (FastAPI, SQLite แบบอ่านอย่างเดียว, Nginx, systemd)
  3. May – Oct 2025พ.ค. – ต.ค. 2025

    AI Engineer Intern

    National Telecom (NT)

    • Developed a recommender chatbot and AI agents for personalized promotions.พัฒนาแชทบอทแนะนำโปรโมชั่นและ AI agent แบบเฉพาะบุคคล
    • Implemented RAG architecture for real-time knowledge retrieval.วางสถาปัตยกรรม RAG สำหรับดึงความรู้แบบเรียลไทม์
    • Prepared data for AI systems and search optimization.เตรียมข้อมูลสำหรับระบบ AI และปรับปรุงการค้นหา
    • Published as a journal article (2026) — PDF ↗ · project card ↑ตีพิมพ์เป็นบทความวารสาร (2569) — PDF ↗ · การ์ดโปรเจกต์ ↑

Skillsทักษะ

Only things that appear in the projects and roles above. ระบุเฉพาะสิ่งที่ปรากฏในโปรเจกต์และงานข้างบน

← Main menuเมนูหลัก

AI & LLMAI & LLM

  • RAG & vector search (pgvector, bge-m3)RAG & vector search (pgvector, bge-m3)
  • Tool calling & guard modelsTool calling & guard model
  • Fine-tuning: QLoRA (Gemma 3)Fine-tune: QLoRA (Gemma 3)
  • Serving: vLLM · ONNX RuntimeServe โมเดล: vLLM · ONNX Runtime
  • Evaluation: held-out sets, paired significance tests, Ragas, AI judgesประเมินผล: ชุดทดสอบที่กันไว้, paired significance test, Ragas, AI judge
  • Local inference (Ollama, LM Studio)รันโมเดลในเครื่อง (Ollama, LM Studio)
  • Speech: Qwen3-TTS, VITS, RVCเสียงพูด: Qwen3-TTS, VITS, RVC
  • AI agents, MCP, Claude Code / Codex CLIAI agent, MCP, Claude Code / Codex CLI
  • LangChain · Hugging Face · Gemini API

BackendBackend

  • Python · FastAPI · REST APIs
  • gRPC
  • SQL · PostgreSQL · SQLAlchemy (async) · Supabase
  • Node.js · Express
  • OAuth (Google, LINE) · TOTP 2FA
  • discord.py · FFmpeg

FrontendFrontend

  • TypeScript · React · Next.js
  • Tailwind CSS
  • three.js · three-vrm
  • PWA · IndexedDB
  • Vue · Quasar (2023)
  • HTML · CSS · JavaScript

Mobile & gamesมือถือ & เกม

  • Swift · SwiftUI
  • SpriteKit · PhotoKit
  • Unity 6 (C#)

Data & MLData & ML

  • PyTorch · MediaPipe
  • pandas · Matplotlib · Seaborn
  • Decision Tree · Random Forest · XGBoost
  • Orange Data Mining · Streamlit
  • sentence-transformers · ChromaDB
  • Computer vision: YOLO · OpenCVComputer vision: YOLO · OpenCV

Toolsเครื่องมือ

  • Git · GitHub Actions
  • Testing: Playwright · Vitestทดสอบ: Playwright · Vitest
  • Vercel · Docker (basic)
  • Linux · Nginx · systemd
  • SQLite · Figma
  • Automated Excel reportingรายงาน Excel อัตโนมัติ

Aboutเกี่ยวกับผม

← Main menuเมนูหลัก

I studied Computer Science at Maejo University in Chiang Mai, where my interest started in data science and machine learning. My senior project with the Maejo research team was published in the Maejo Information Technology and Innovation Journal in 2026. Since then the work has moved toward language models: retrieval systems that cite real data, tools that run on the user's own machine, and agents that have to prove what they did. ผมเรียนวิทยาการคอมพิวเตอร์ที่มหาวิทยาลัยแม่โจ้ เชียงใหม่ เริ่มจากความสนใจด้านวิทยาการข้อมูลและ machine learning งานจบที่ทำร่วมกับคณะผู้วิจัยที่แม่โจ้ตีพิมพ์ในวารสารแม่โจ้เทคโนโลยีสารสนเทศและนวัตกรรม ปี 2569 จากนั้นงานขยับมาทาง language model: ระบบค้นคืนที่อ้างอิงข้อมูลจริง เครื่องมือที่รันบนเครื่องผู้ใช้เอง และเอเจนต์ที่ต้องพิสูจน์สิ่งที่ทำ

I now work in Bangkok as a Full Stack Developer and AI Engineer at River Park Innodigital, and take freelance full-stack work. Outside work I build Lucia, an AI companion, and keep most of what I make open on GitHub. ตอนนี้ทำงานที่กรุงเทพฯ ในตำแหน่ง Full Stack Developer และ AI Engineer ที่ River Park Innodigital และรับงานฟรีแลนซ์ full-stack นอกเวลางานผมพัฒนา Lucia ซึ่งเป็น AI companion และเปิดโค้ดส่วนใหญ่ไว้บน GitHub

Educationการศึกษา
B.Sc. Computer Science, Maejo University, 2022 – 2026 · GPA 3.77วท.บ. วิทยาการคอมพิวเตอร์ มหาวิทยาลัยแม่โจ้ 2565 – 2569 · GPA 3.77
Publicationผลงานตีพิมพ์
AI Agent-based Internet Promotion Recommendation System using RAG — MITIJ 12(3), 2026 ↗ระบบแนะนำโปรโมชั่นอินเทอร์เน็ตอัจฉริยะด้วย RAG และ AI Agent — วารสารแม่โจ้ IT 12(3), 2569 ↗
Based inอยู่ที่
Bangkok, Thailandกรุงเทพฯ ประเทศไทย
Languagesภาษา
Thai (native), English (intermediate)ไทย (เจ้าของภาษา), อังกฤษ (ระดับกลาง)

Certifications & activitiesใบรับรองและกิจกรรม

Contactติดต่อ

Email is the fastest way to reach me. อีเมลคือช่องทางที่ตอบเร็วที่สุด

← Main menuเมนูหลัก