ข้ามไปยังเนื้อหา
bawonsak.p

Bawonsak Petchbunjerdkul · Senior Software Developer

ผมสร้างระบบ backend, enterprise platform และ integration system ที่ใช้งานจริงใน production

ออกแบบและพัฒนา messaging platform, order consolidator, reporting pipeline และ internal tool ด้วย NestJS, MongoDB, PostgreSQL, Docker และ Kubernetes — และอยู่ดูแลระบบต่อหลัง deploy

กรุงเทพฯ · UTC+7 · รับงาน consulting และ freelance

แผนภาพสถาปัตยกรรมระบบ: dashboard, webhook และ external platform เชื่อมเข้า API งานไหลผ่าน queue ไปยัง worker pool และ database ส่วน reporting วนกลับไปที่ dashboard ทั้งหมด deploy บน Kubernetes enqueue consume bulk write REST · OAuth 2.0 aggregate DASHBOARD Angular · React API NestJS · REST WEBHOOK inbound events EXTERNAL APIS Shopee · Lazada · TH Post QUEUE / JOBS agenda · batches WORKER POOL concurrency ×8 DATABASE MongoDB · PostgreSQL REPORTING aggregation pipeline DEPLOYMENT Docker · GitHub Actions · Kubernetes sync async flow

01 งานที่ผมสร้าง

ระบบที่มีคนขอให้ผมสร้างอยู่เรื่อย ๆ

ไม่ใช่ demo แต่เป็นระบบที่มีคนใช้งานจริง มีข้อมูลจริงวิ่งผ่าน และต้องมีคนดูแลต่อหลังจากผมส่งมอบ

02 จุดแข็งหลัก

สิ่งที่ผมทำได้ดีที่สุด

01

Backend Architecture

วาง service boundary จาก business workflow จริง ออกแบบ API contract ให้ชัด และคิดเรื่อง failure กับ retry ของ background job ตั้งแต่วันแรก ไม่ใช่หลังระบบพังครั้งแรก

03

System Integration

Shopee, Lazada, Thailand Post และระบบภายใน — ออกแบบแบบ defensive เผื่อ API ที่พฤติกรรมไม่นิ่ง, sandbox ที่ไม่สมบูรณ์ และ token ที่ชอบหมดอายุตอนที่ไม่ควร

05

Kubernetes Deployment

Docker, GitHub Actions, ConfigMap, Secret, TLS, NGINX ingress — วางแผน deploy โดยคิดถึงผลกระทบต่อข้อมูล ให้ release ที่พลาดจบที่ rollback ไม่ใช่จบที่ incident

02

Large-scale Data Processing

รองรับ input ระดับล้าน record ต่อไฟล์ — แบ่ง batch, ใช้ worker pool และคุม memory ตั้งแต่ตอนออกแบบ ไม่ใช่มาตามแก้หลังโดน OOM kill

04

MongoDB & PostgreSQL Performance

ออกแบบ compound index จาก access pattern จริง เขียน aggregation ที่ไม่ชน memory limit และทำ pagination ที่ยังเร็วอยู่เมื่อข้อมูลโตขึ้นเรื่อย ๆ

06

Enterprise Product Engineering

ซอฟต์แวร์ที่ทีมอื่นต้องดูแลต่อและต่อยอดได้ เน้น maintainability, observability และ technical decision ที่ยังอธิบายเหตุผลได้หลังผ่านไปครึ่งปี

03 Case studies ที่เลือกมา

สามระบบจาก production จริง

งาน messaging ระดับล้าน record, ปัญหา reporting performance และ integration ข้ามหลาย platform — พร้อมข้อจำกัดและ trade-off ที่อยู่เบื้องหลังแต่ละระบบ

CS·01

Smart Messaging Platform

ออกแบบและพัฒนา enterprise campaign messaging platform ที่มี validation, scheduling, delivery และ reporting workflow ที่ต้องรอดใน production จริง

ระบบ enterprise messaging platform สำหรับสร้าง campaign, validate ผู้รับ, ตั้งเวลา, ส่ง และดู report — รองรับ manual input, file input, contact selection, validation rules และ background processing ปริมาณมาก

อ่าน case study

โจทย์หลัก

ประมวลผล campaign input ได้ถึง 1,000,000 record โดยไม่เกิด memory spike และทำให้ scheduling, delivery กับ reporting เชื่อถือได้

Tech stack

NestJS Angular MongoDB Mongoose Agenda Node.js +3

CS·02

MongoDB Reporting Optimization

ปรับ aggregation, indexing และ reporting query สำหรับข้อมูล campaign ปริมาณมาก

ระบบ reporting สำหรับ campaign messaging และ operational dashboard ที่ต้อง query และ aggregate ข้อมูลปริมาณมาก โดยไม่เจอ slow query, operation ที่กิน memory หนัก หรือ pagination ที่พังเมื่อข้อมูลโต

อ่าน case study

โจทย์หลัก

aggregation pipeline บน collection ขนาดใหญ่ — เลี่ยง slow query, intermediate array ที่ใหญ่เกิน, จุดอ่อนของ $lookup กับ $facet และ pagination ที่ไม่มีประสิทธิภาพ

Tech stack

MongoDB Mongoose NestJS Aggregation Pipeline Node.js

CS·03

E-commerce Order Consolidator

ระบบรวม order จากหลาย e-commerce platform ให้จัดการได้ใน workflow เดียว

ระบบที่รวม order จาก Shopee, Lazada และ seller platform อื่นมาไว้ที่เดียว — ทั้ง order list, order detail, order status, shipment status และ logistics workflow ของ Thailand Post

อ่าน case study

โจทย์หลัก

เชื่อมหลาย platform API ที่ order format, OAuth 2.0 token lifecycle, พฤติกรรม webhook และ sandbox ไม่เหมือนกันและไม่สมบูรณ์ ให้กลายเป็น workflow เดียวที่เชื่อถือได้

Tech stack

React / Next.js Node.js Express.js SQL database REST API OAuth 2.0 +4
ดู case studies ทั้งหมด →

04 Technical stack

เครื่องมือที่ผมหยิบใช้

เลือกตามโจทย์ ไม่ใช่ตามเทรนด์ — ใน case studies จะเห็นว่าแต่ละตัวประกอบกันยังไง

Backend

NestJS Node.js Express.js REST API design OAuth 2.0 JWT Background jobs Webhooks

Frontend

Angular React Next.js TypeScript Enterprise dashboards

Data

MongoDB Mongoose PostgreSQL MySQL Aggregation pipelines Index design Bulk writes

Infrastructure

Docker Kubernetes NGINX Ingress GitHub Actions CI/CD TLS / Secrets

05 วิธีคิดเชิงระบบ

ผมเริ่มต้นกับระบบยังไง

ลำดับเดิมทุกครั้ง — เพราะการข้ามขั้นตอนวันนี้ คือสาเหตุที่ระบบพังในวันหน้า

  1. 01

    เข้าใจ business workflow ก่อนออกแบบระบบ

    งานจริงเกิดอะไรขึ้น ใครเป็นคนทำ และวันนี้มันติดตรงไหน

  2. 02

    แยก system boundary ให้ชัด

    อะไรอยู่ในระบบ อะไรเป็น integration และอะไรยังเป็นงาน manual ต่อไป

  3. 03

    ออกแบบ data model และ API contract

    schema กับ contract ต้องมาก่อนโค้ด เพราะมันอยู่ยาวกว่าโค้ด

  4. 04

    สร้าง processing pipeline ที่ scale ได้

    batch, queue, worker pool และ idempotency

  5. 05

    ปรับ query และ database access pattern ตามการใช้งานจริง

    index และ query ออกแบบจากการอ่านข้อมูลจริง ไม่ใช่จากการเดา

  6. 06

    Deploy และ operate ระบบอย่างระมัดระวัง

    release ทีละน้อย มี observability และมีแผน rollback เสมอ

  7. 07

    ทำให้ระบบดูแลต่อได้ในระยะยาว

    ระบบที่ดีคือระบบที่วิศวกรคนถัดไปกล้าแก้โดยไม่ต้องลุ้น

มีระบบที่ต้องรอดใน production ไหมครับ

ผมเปิดรับงาน backend engineering, enterprise system development, internal tools, integration platform, system architecture review และ technical consulting