01Professional summary
I'm a self-taught full-stack and infrastructure engineer in Thailand, with 6+ years of hands-on experience. I turn unclear problems into changes I can measure and check, and choose structure when it makes a system easier to understand and operate.
My work spans applications and the infrastructure beneath them: a production multi-tenant webhook platform, Terraform and a seven-node k0s cluster. I also run a smaller hybrid k3s lab to test ideas before applying them to other people's systems.
That same approach extends to coding agents. I built an instruction architecture and evaluation harness for my own work, then used session transcripts to examine how instruction changes affected the way I work.
02Selected work
2026 · production platform
Connect Broker — messaging integration
- Own a multi-tenant platform connecting LINE and Meta, from provider authorization through webhook ingestion and downstream delivery.
- Shared typed contracts connect the NestJS API and Next.js dashboard; operations include delivery health, per-process circuit breakers, rate limiting and audit trails.
- NestJS
- Next.js
- TypeScript
- Turborepo
2026 · measured optimization
Omnichat — inbox performance & tenant isolation
- Reduced the recorded branch-admin inbox measurement from 14.4s to 0.09s by replacing per-row RLS helpers with set membership.
- Verified the change against the prior baseline for data loss and cross-tenant leakage, retaining the database authorization boundary.
- NestJS
- Next.js
- PostgreSQL (incl. RLS)
- Drizzle ORM
2026 · production platform
Erocavontic — full stack rebuild
- Rebuilt a Minecraft asset studio's entire stack — admin, public site, REST API and Discord integration — as one system.
- Consolidated legacy data into a normalized PostgreSQL schema of 72 models through idempotent imports and marketplace API synchronization.
- Replaced role checks with capability-based authorization, so permissions change at runtime without a deploy or re-login.
- NestJS
- Next.js
- MySQL
- PostgreSQL
- Prisma
- OpenAI API
- Discord.js
2026 · personal · private source
Random Build Brief — from idea to a timed build
- A challenge generator for developers, designers and AI builders: what to build, who it is for and the problem it should solve.
- Generate a brief, build within a time limit, then present the result. Optional scope helps define done while leaving the solution up to the builder.
- Next.js
- TypeScript
- OpenAI API
- Tailwind CSS
2024 – Present · personal
Self-Hosted Infrastructure — designed and operated
- 4-node k3s cluster spanning on-premise and VPS sites over a WireGuard mesh, on two Proxmox hosts with cloud-init VM provisioning — 300+ days uptime.
- Kustomize-based GitOps with a strict kubectl diff = 0 invariant: anything running must exist in git; decommissioned workloads are archived with the reason and a restore path.
- Ran the full kube-prometheus stack, then measured it: 49,904 active series on a three-node cluster, three-day retention, alerts on 168 metrics reaching nobody, and the Prometheus pod living on the node whose failure it was meant to explain. Removed it and ship telemetry out through Grafana Alloy instead; per-service request metrics still come through Traefik.
More detailsShow less
- Segmented the mesh by team with group-based policy — a jump host in front of production and SSH scoped to a single port and direction — and advertised the cluster Service and Pod CIDRs as subnet routes so the team reaches in-cluster services without per-developer port-forwards.
- Automated etcd snapshot backup and integrity checks, with a documented manual restore procedure. A full restore drill has not yet been recorded. NetworkPolicy enforcement and replicated Cloudflare tunnels are managed through manifests.
- Diagnosed and resolved a provider-side disk IOPS throttling incident (root cause: memory pressure + page-in stalls) and documented a repeatable check.
- Consolidated the manifest repository from ~1,950 files to ~140 while keeping the cluster running.
- Kubernetes (k3s)
- Proxmox
- WireGuard
- Kustomize
- Terraform
- Prometheus
- Grafana Alloy
- Cloudflare Tunnel
2026 · personal
Agent System & Evaluation Harness
- A layered instruction system for coding agents — 6 always-loaded rules, 53 domain skills with explicit routing, and 3 versioned agent definitions separating implementation from acceptance review. Always-loaded rules were consolidated as on-demand skills grew, moving task-specific procedures out of the always-loaded layer.
- Evaluated instruction changes using versioned cutover markers and explicit sampling rules. The experiment notes distinguish observed trends from causal claims and record classifier limitations.
- Built a routing regression suite (scenario → expected skill) and a Python evaluation pipeline that indexes session transcripts, extracts turns, classifies events and scores them against ground truth.
More detailsShow less
- Ran versioned cutovers with before/after measurement rather than subjective judgement.
- Python
- evaluation harness design
- prompt/agent architecture
- Claude Code
03Measured outcomes
inbox · measured branch-admin case
RLS policy rewritten from a SETOF function to pure set-membership, verified against the pre-change baseline for both data loss and cross-tenant leakage.
160× faster
manifest repository
Consolidated while keeping the cluster running, under a strict kubectl diff = 0 invariant.
93% smaller
self-hosted cluster · recorded uptime
300+ days
A recorded milestone for the 4-node k3s cluster across on-prem and VPS sites over a WireGuard mesh; not a live uptime feed.
delivery footprint
16 products · 31 repos
Reviewed and integrated work from 10 contributors.
04Experience
2025.11 — nowcurrent
Mekha Innovation Co., Ltd
Full-Stack Engineer / Solution Owner
- Sole owner of a multi-tenant webhook ingestion & connect-broker platform (LINE/Meta) — designed, built and running in production since Jul 2026; NestJS + Next.js Turborepo monorepo with shared typed contracts.
- Sole owner of infrastructure & operations: Terraform IaC on AWS/BytePlus, a 7-node on-prem k0s production cluster with role-separated API/app/storage node pools, CI/CD, deployments, incident response and backup/restore.
- Mek AI (production SaaS) — one of its two largest contributors: solution architecture for web/API, AI content pipeline, chatbot + RAG, workflow automation, LINE/Facebook/Instagram integrations, GCP Cloud Run + Pub/Sub, Supabase; later migrated the service off Cloud Run and Artifact Registry onto a self-hosted registry and static host.
More detailsShow less
- Omnichannel support inbox (LINE/Messenger/Instagram/WhatsApp) — its single largest contributor; NestJS + Next.js with Postgres row-level security and multi-tenant isolation.
- Cut that inbox from 14.4s to 0.09s for its busiest persona (250 branch admins) by replacing a SETOF-function RLS policy with pure set-membership — verified against the pre-change baseline for both data loss and cross-tenant leakage.
- Delivered across 16 products and 31 repositories — TypeScript, .NET 8 (EF Core, MassTransit/RabbitMQ), Go, Vue, Next.js; reviewed and integrated work from 10 contributors.
- Aurora / Thong Ma Ngern Pai: started the Vue LIFF front end, the back office and the Kubernetes layer, and wrote most of the .NET 8 backend; per-company payment gateway credentials with per-merchant rate limiting; PIN/OTP flows; AI OCR; KBank payment integration behind dedicated static-egress proxies, so bank-facing traffic leaves from the addresses the bank whitelists.
- Hardened multi-tenant security — re-imposed tenant boundaries on RLS-bypassed tables, fixed socket authentication and enforced tenant authorization on broadcast and list endpoints.
- Built load-testing and CPU-profiling tooling; documented measured failover behaviour rather than assumed behaviour.
- Ran a security review of a sibling product (authentication deep-dive: account-takeover path, MFA enrolment bypass, missing logout) and drove the fixes.
- Established cross-repository conventions — environment vocabulary, immutable image tagging, build-once/promote-by-sha, shared reusable CI workflows.
- NestJS
- Next.js
- .NET 8 / EF Core
- Go
- Vue/Nuxt
- PostgreSQL + (RLS)
- MSSQL
- Drizzle
- RabbitMQ / MassTransit
- Kubernetes (k0s)
- Terraform
- AWS / BytePlus / GCP
- Supabase
- Turborepo
- Zod
2024.02 — 2025.10
Emetworks Co., Ltd
Full-Stack Engineer · DevOps
- Developed and maintained the EX10 CRM on the EX10 Engagement Platform using Vue, Nuxt, Node.js and Go.
- Backend engineer for 21 months on a bank's customer loyalty CRM API — campaign engine, points and rewards, and LINE bot integration.
- Implemented loyalty program modules — rewards, campaigns, member tiers and reporting.
More detailsShow less
- Integrated e-commerce platforms (Shopee, Lazada, TikTok, Bentoweb) through SQS queues.
- Worked with AWS services including S3, CloudFront, SQS, EC2 and Lambda.
- Developed and documented the POS API to OpenAPI standards.
- Vue
- Nuxt
- Node.js
- Go
- AWS (SQS, Lambda, S3, CloudFront, EC2)
- MongoDB
- GitLab CI
- OpenAPI
2022.08 — 2024.01
Nippon Sysits Co., Ltd
Full-Stack Developer
- Developed frontend UI and backend APIs for large internal healthcare systems, working inside an established multi-team codebase.
- TBIS (blood donation): profile validation, document templates, monitoring for file-transfer failures.
- TBIS-SCAN: converted scanned documents to e-documents (Vue 3, Express.js).
More detailsShow less
- Red Cross Eye Bank: donor queue, surgery records and reporting modules, and sole author of its VB service.
- Started TBIS-F, a new internal system, and wrote 40% of its commits.
- Deployed applications to UAT and production environments.
- Vue 3
- Express.js
- .NET / VB
- MSSQL
- REST
2021.12 — 2022.07
Realtech Co., Ltd
Full-Stack Developer
- Built NestJS modules and services for a high-volume transaction platform.
- Authored a reusable, documented and unit-tested NestJS module for Google Pub/Sub used across services.
- High-throughput transaction logging APIs.
More detailsShow less
- Near real-time reporting services.
- NestJS
- TypeScript
- Google Pub/Sub
- Docker
2019.11 — 2021.11
Digitalmerce Co., Ltd
Full-Stack Developer
- Sole developer of a venue booking & operations back-office (Laravel 8, Blade, AdminLTE, MySQL) — 30 domain models, 20 controllers, 29 migrations.
- Booking engine with a configurable status workflow, capacity limits per zone and area, dynamic pricing rules and payment verification/approval flows.
- Equipment borrow/return, food & beverage catalogue, and bulk CSV import modules.
More detailsShow less
- Access control by role, department and position; daily summary and financial reporting.
- JSON API layer consumed by the customer-facing booking flow.
- Deployed to UAT and production servers.
- Laravel 8
- Blade
- AdminLTE
- MySQL
- PHP 7/8
05Technical skills
- Applications
- TypeScript
- React / Next.js
- Vue 3 / Nuxt
- TailwindCSS
- Services
- NestJS
- Node.js
- C# (.NET 8)
- Go
- Python
- OpenAPI
- Data & messaging
- PostgreSQL (incl. RLS)
- Prisma
- Drizzle ORM
- Redis
- RabbitMQ
- AWS SQS
- Platform & delivery
- Kubernetes
- Docker
- Linux
- Terraform
- AWS / GCP
- GitHub Actions
- WireGuard
- AI & verification
- Claude Code
- OpenAI
- RAG
- MCP
- agent evaluation
- Playwright
- k6 load testing
Education
Self-taught · 6+ years hands-on
06How I work
I like problems that start out vague — a page that just “feels slow”, a job that quietly stopped running — and end with a number anyone can check. I also like software that is orderly and easy to use; Kubernetes and NestJS are two I enjoy working with for exactly that reason. But structure on demand: a pattern earns its place when the problem asks for it, not because it is on a list.
Capability-based authorization
Runtime-editable permissions instead of a role enum, so who can do what changes without a deploy or a re-login.
N/N-1 compatible deploys
Schema goes out ahead of the code that reads it, with the previous version still serving throughout.
Legacy migration & ETL
Idempotent, dry-run-first imports that reconcile against the source and reject what cannot be trusted.
LLM confined to read-only SQL views
The boundary is a database GRANT, not a sentence in the system prompt.
Agent evaluation harness
Routing fixtures and transcript scoring, so a change to an instruction is measured rather than argued about.
Independent acceptance review
A separate reviewer role that can return FAIL and is not the one that wrote the change.