kantakan@vps-01:~$ uptime →

Kantakan avatar

Kantakan

Software Engineer & Tech Instructor — Chonburi, Thailand — open to remote


guest@kantakan: ~

Summary

Full-stack developer with nearly three years building production web applications in TypeScript, Go, and React, alongside leading technical instruction for cohorts of 300+ students. Built Baro to replace the shared Google Sheet learners wrote their daily reflections in, where anyone could read anyone's: a Go and React app I designed end to end, which cut admin reports from over five minutes of Apps Script to under a second. I like problems that fight back — same reason I play Elden Ring.

$ docker ps

CONTAINERIMAGESTATUS
exam-pNext.js · PostgreSQL · Drizzle · Docker · k6Up
deeznoteReact · Bun · Elysia · SQLite · libsodiumUp
baroReact · TypeScript · Go Fiber · MongoDBUp
gymnimalReact · TypeScript · Supabase · PWAUp

👉 Open a project to see screenshots and a demo video.

exam-p — Online Exam Practice Platform 👈 click exam-p desktop question screen: question 4 of 10 with the question navigator

Exam practice platform for Thai students: timed attempts on mobile with answers saved as you go, instant scoring with worked explanations, and a teacher console that imports questions from Excel.

Next.js 15 and React 19 on PostgreSQL with Drizzle and Better Auth, shipped as Docker containers behind Caddy on a 1 vCPU / 1 GB DigitalOcean Droplet.

Load-tested with k6 at 50 virtual users on the production 1 vCPU / 1 GB Droplet, before and after serving catalog pages from cache instead of rendering each request:

METRICBEFOREAFTER
p95 latency4.19 s288.8 ms
throughput11.1 req/s35.0 req/s
requests1,1723,704
failed0%0%
DeezNote — Encrypted Markdown Notes 👈 click DeezNote workspace with an open travel note and a photo of the Isle of Skye

End-to-end encrypted Markdown notes that work offline. Notes are encrypted in the browser before they sync, so the server stores only ciphertext and never sees a title, text, tag or photo.

React 19 + Vite PWA with a Milkdown editor and Dexie (IndexedDB) for offline-first storage; XChaCha20-Poly1305 via libsodium with per-note keys wrapped by an Argon2id-derived vault key. Bun + Elysia API on SQLite with Drizzle ORM, self-hosted on a VPS.

demo: deeznote.103-253-146-20.sslip.io · repo: github.com/KantaKan/DeezNote

Baro (Generation Barometer) — Student Management Platform 👈 click Baro character card, a yellow cat-eared companion that grows with the learner's reflection streak

Full-stack platform for bootcamp cohorts: daily reflections, attendance check-in, streaks and badges, plus a full admin console. In daily use across 6+ bootcamp cohorts.

It replaced a shared Google Sheet where every learner could read everyone else's reflections, and an Apps Script report that took over five minutes to run. Now each learner sees only their own entries, and admins get the whole cohort in under a second, so they can spot who needs support the same day. I built the app and designed its UX/UI.

Go Fiber backend (handler → service → repository) with JWT role-based auth, MongoDB, S3-compatible storage and scheduled jobs; layered React frontend with React Query and a react-three-fiber 3D streak visualization.

demo: generation-barometer.vercel.app · repos: react-genbaro (frontend), baro-gofiber (backend)

Gymnimal — Beginner Workout PWA 👈 click Gymnimal leg press screen on a phone: 60 lb, starting weight picked for you

Mobile-first PWA that makes every training decision — machine order, starting weight, progression — from a unit-tested engine.

Offline-first by design: in-session writes queue to IndexedDB and sync to Supabase in the background, so poor gym connectivity never blocks a set. Anonymous-first auth with row-level security; English/Thai i18n.

demo: gymnimal.vercel.app

Interests

Competitive Gaming: Top-tier ranked player and in-game leader (IGL) in League of Legends, Valorant, and Counter-Strike — team games where I set strategy and coordinate five players live. Years of team competition built what I bring to a dev team: collaboration under pressure, clear communication, fast calls on incomplete information, and improvement through honest review.

Self-Hosting: Run my own side projects on a cheap VPS for the fun of it — provisioning the box, proxy and deploy pipeline by hand instead of clicking deploy. Most of what I know about infrastructure came from wanting to see what happens after the code ships.

Experience

Stack

TypeScript Go React Next.js Node MongoDB PostgreSQL Supabase Docker Caddy Linux

Started making games at 10: reached the regional round of Thailand's national Student Arts and Crafts Fair in creative game development (RPG Maker, Flash) every year from Grade 4 to Grade 11.

Education: Generation Thailand Bootcamp, Cohort 5 (2023) → hired onto the teaching team.


Contact

no frameworks were harmed.