During my 12-week internship at SCB DataX within the Group Data Platform (GDZ), I developed end-to-end data pipelines for SCBX subsidiaries including AutoX, SCB Protect, and InnovestX. As a Data Engineer Intern, my core responsibilities covered data ingestion, data transformation, and data export processes to seamlessly centralize organizational data storage.
To optimize system operations, I successfully implemented CI/CD workflows and automated Python scripts to upgrade Databricks Runtime (DBR) versions and adjust Databricks job sensor wait times. These technical initiatives significantly reduced manual workloads, enhanced resource allocation efficiency on Databricks, and rigorously ensured data quality through unit testing before production deployments.
Technology Stack
Data Engineering & Platform: Databricks | Python | SQL
Infrastructure & Deployment: Terraform | CI/CD | Git
Role
Data Engineer (Intern)
Group Data Zone (GDZ) Team & Interns at SCB DataX
Flowchart of E2E Pipeline
As the final project for a Data Science and Data Engineering course (2110446), I took ownership of designing the core system architecture and engineered an automated OCR pipeline to digitize dense Thai election tally sheets. Utilizing the Typhoon model, I orchestrated a robust workflow via Apache Airflow and Docker. The pipeline automatically fetches hierarchical image data from Google Drive, applying image preprocessing (grayscale, chunking) and parallel processing to prevent timeouts and optimize execution speed. To ensure high data integrity, I implemented an automated data cleansing and validation logic—converting Thai numerals, executing similarity-based spell checks against master data, and mathematically validating vote-sum equations (e.g., Used Ballots = Valid + Invalid + No Vote). Any discrepancies were systematically flagged for human review, delivering highly accurate and structured datasets for downstream analysis.
Technology Stack
Orchestration & Tools: Apache Airflow | Docker | Python
AI & Processing: Typhoon OCR | Parallel Processing | Image Processing (Chunking, Grayscale)
Data Integration: Google Drive API
Role
Data Engineer | System Architect
Initiated as an Individual Study project with the Pic Lab, the first phase focused on transitioning from manual data scraping to a robust automated ingestion pipeline. I orchestrated the data workflow using Apache Airflow and Docker, implementing Dynamic Task Mapping to concurrently fetch highway incident reports from the HAIMS API. This automated system reliably extracts and lands raw JSON payloads into local storage, establishing a highly scalable and stable foundation for downstream AI analysis.
Technology Stack
Apache Airflow | Docker | REST API (HAIMS)
Role
Data Engineer
Airflow DAG Runs
System Architecture
In the subsequent phase, I engineered a Multi-Agent RAG architecture to deeply analyze the complex incident reports. I designed an Actor-Critic Evaluation Loop using ChromaDB and local LLMs via Ollama, where a "Generator" drafts solutions and a "Judge" provides iterative feedback. By optimizing the model's memory structure and systematically injecting theoretical iRAP engineering standards, the system successfully transitioned from proposing "greedy" band-aid fixes to generating highly consistent, long-term road infrastructure improvements.
Technology Stack
Multi-Agent RAG | ChromaDB | Local LLMs (Qwen2.5, Gemma2) | Ollama
Role
AI Engineer
Multi-Agent Logic Flow
Visualizing the Logs
Experiment Results Table
Developed during the Thai Parliament Datathon organized by WeVis, this project helps citizens explore political parties through actual parliamentary data rather than social media narratives. As Project Manager and Data Analyst, I used GraphQL to query the Politigraph API and map out key data relationships. I defined the core storytelling strategy, guided the team to build an interactive 3D visualization, and delivered the final pitch—successfully bridging the gap between complex political datasets and public understanding.
Technology Stack
API & Data Query: GraphQL | Politigraph API
Data & Management: Data Analysis | Storytelling | Project Management
Role
Project Manager | Data Analyst | Presenter
Example of Our 3D Visualization
Presenting to the Audience
Technology Stack
Backend & Database: Python (FastAPI) | MongoDB (NoSQL) | PyMongo
API & Interface: LINE Messaging API | Flex Message
Deployment & Tools: Render (Cloud) | ngrok | UptimeRobot
Role
Full-Stack Developer
Initiated to explore chatbot development by solving Spotify Family management friction: scattered slips, manual billing, and repetitive status inquiries. I built a LINE Bot (Python/MongoDB) that automates slip collection and expiry calculations, while offering a self-service status check for members, successfully streamlining the workflow and minimizing admin workload.
Lovecat888 is a computer vision system designed to convert complex chess game videos into structured PGN (Portable Game Notation). I designed the end-to-end pipeline, covering image processing, model training, and game-state analysis. Using OpenCV, I implemented chessboard detection and perspective correction with Hough Transform to obtain an accurate top-down view. I also prepared the dataset and fine-tuned a YOLOv8 model with negative sampling, achieving an mAP50 of 0.9658. To address hand occlusion during gameplay, I researched and evaluated pretrained hand-detection models, improving robustness in move recognition and ensuring rule-compliant PGN generation.
Technology Stack
Computer Vision & ML: YOLOv8 (Ultralytics) | OpenCV
Programming & Logic: Python | Python-Chess
Data Science & Evaluation: Pandas | Edit-distance Algorithm
Dataset Management: Custom Annotation | Negative Sample Augmentation
Game Logic: Python-Chess
Role
Data Engineer | Backend Developer
Pipeline
Confusion Matrix Normalized
Smart Sound-Reactive Lighting System is an IoT-enabled embedded system for sound- and light-based lighting control. I handled hardware wiring and embedded development, implementing sensor reading, sound peak detection, and control logic on STM32, then transmitting system states via UART. I also programmed the ESP32 using Arduino IDE to parse data and publish JSON messages to NETPIE 2020 over MQTT for real-time monitoring.
Technology Stack
Hardware: STM32 Nucleo-F411RE | ESP32 |
Microphone Sensor | LDR | RGB LED
Embedded / IoT: C | Arduino | UART | MQTT | NETPIE 2020
Role
Embedded Systems | IoT Developer
Hardware Part
Online Job Fair Registration is a full-stack web application for managing online job fair registration and interview booking. I worked as a Frontend and Backend Developer, developing RESTful APIs with Node.js and Express, designing MongoDB schemas, and implementing JWT-based authentication with role-based access control. I built core backend logic for interview booking, company management, favorites, and distance-based company search, and integrated these APIs into a React frontend to support authentication, booking management, and company browsing.
Technology Stack
Backend: Node.js | Express | MongoDB | JWT | bcrypt | RESTful API
Frontend: React | Vite | Axios
Role
Backend Developer | Frontend Developer
Developed as a core part of the Software Engineering Course, Fly-with-Sigma is a scalable full-stack flight booking platform designed to provide a seamless travel-booking experience. Serving as the Scrum Master for a team of nine, I facilitated Agile ceremonies, including daily stand-ups, sprint planning, and retrospectives. In my capacity as UI Lead, I architected the System Design and established a library of Global Components to maintain visual consistency across the platform. I also took a hands-on role in Frontend Development, building critical user interfaces such as the Payment gateway, Account Settings, and Customer Support modules. To ensure the platform’s reliability, I implemented automated end-to-end testing for the Authentication flows using Playwright, guaranteeing a secure and bug-free user onboarding process.
Technology Stack
UX/UI: Figma
Frontend: Next.js | TailwindCSS
Backend: Next.js | NextAuth.js | Prisma | Neon
Testing: Playwright | Jest
DevOps & Tools: GitHub Workflows (CI/CD) | Vercel | Scrum/Agile
Role
Scrum Master | UI Designer | Frontend Developer
As the UI Lead, I designed end-to-end user flows and UX for the platform, focusing on clarity and consistency across core booking features. I defined the frontend-oriented system design and established a set of global UI components to standardize layouts, navigation, and interaction patterns, including key interfaces such as the Payment and My Booking pages.
In my role as a Frontend Developer, I implemented core pages including Account Settings, Payment, and Customer Support, along with shared components used across the application. I also contributed as a Tester by implementing automated end-to-end tests for authentication flows using Playwright to verify login and session behavior.
Authentication
Search
Booking
Account Management
Waffle Chat is a full-stack real-time chat application supporting private and group conversations with real-time messaging via Socket.IO, persistent message storage, and audio message support. I worked as a Backend & Database Engineer, responsible for designing MongoDB schemas for users, chats, and messages, implementing JWT-based authentication flows (register, login, logout) with authorization middleware, and developing audio message functionality using Multer and Cloudinary, integrated with both REST APIs and Socket.IO events.
Technology Stack
Frontend: React | TailwindCSS | Socket.IO
Backend: Node.js | Express | Socket.IO | JWT
Database & Storage: MongoDB | Cloudinary (Media Storage)
Deployment & DevOps: Docker | AWS Elastic Beanstalk | Nginx
Role
Backend Developer | Database Engineer
Authentication
Private Chat
Group Chat
* The application currently runs on localhost only due to deployment requirements for a domain name and HTTPS.
As a member of PINUP, a startup providing legal and design support tools, I worked in the Research phase to process geospatial data. My responsibilities included converting Shapefiles (.shp, .shx, .dbf, .prj, .sbn/.sbx, .cpg) into GeoJSON for further analysis and visualization, deriving useful insights such as distances and areas from geographic coordinates. I also handled initial data cleaning and standardization—for example, mapping Thai-English mixed fields to a consistent format—ensuring that accurate and meaningful information was displayed on our website using OpenStreetMap as the base map.
Technology Stack
Nextjs | JavaScript | TailwindCSS
Python | FastAPI
Role
Backend Developer | Frontend Developer
Technology Stack
Python | FastAPI | MongoDB
Role
Backend Developer | Data Engineer
In the subsequent backend development phase, I took ownership of designing a more scalable system architecture. I redesigned the database schema by decoupling high-level metadata (datasets) from granular geometric objects (features) into separate collections, effectively minimizing data redundancy and optimizing query performance. Furthermore, I completely restructured the backend repository to improve maintainability. By modularizing routers, schemas, and services, I systematically organized the API endpoints based on specific geospatial data categories—such as Administrative, Infrastructure, and Points of Interest (POI). These architectural improvements have now been successfully integrated and applied to the active codebase.
Designed the website for an interactive infinite craft game with a “potion-making” theme, defining the Design System and UI; game ingredients represented different engineering departments, and combined potions reflected each department’s characteristics. This interactive website was created to promote the 25th Engineering Camp.
Design System
Wireframe
User Interface
During my UX/UI internship in June, I worked on the Bills Feature for the PromptPost app. I translated requirements from the Product Owner into user flows for two usage scenarios (Postbox Bills and E-Billing) on FigJam, then designed the feature’s UI in Figma. The app enables users to pay utility bills by retrieving their outstanding balances via APIs, with the first phase focusing on electricity payments for both the Metropolitan and Provincial Electricity Authorities. This work was presented to the client (Thailand Post) and later implemented in production.
Technology Stack
Figma
Role
UXUI Designer (Intern)
Note : All of these links are copy versions.
Technology Stack
HTML | CSS | JavaScript
Role
Frontend Developer (Intern)
During the second month of my internship (July), due to limited time, I focused on learning best practices for HTML and CSS from team members and independently studied JavaScript to complement my frontend work. I was tasked with implementing the UI for two desktop pages:
1) the DiD page, presenting service recommendations
2) the About Us page, showcasing information about PromptPost.
In developing these pages, I implemented transitions, animations, and mobile responsiveness, enabling the pages to support both Thai and English content—features I explored and applied based on design requirements and self-study.
DiD Page
About Us Page
A feature-rich web platform designed to support activities of the 18th FE Camp, with three core modules:
Class Management – Handles class schedules, downloadable resources, announcements, and feedback. Campers are divided into 8 rooms, each with a unique schedule and theme.
Information System – Stores personal and contact information of both campers and staff, with role-based access control to ensure proper visibility.
Camp Utilities – Includes chatbot notifications, pre/post-test features, certificate downloads, and room announcements.
Technology Stack Next.js | PostgreSQL | Prisma | Docker | TablePlus | Postman
Role Backend Developer
As a Backend Developer on the Web Development Team, I contributed to key parts of the system:
Designed Prisma schemas for modules like Web Phase and Notes
Developed RESTful APIs (GET, POST, PATCH) for key functionalities such as submitting camper notes, updating reset passwords, and retrieving web phases
Tackled the most complex part of the backend: implementing secure user sign-up and password reset workflows
Deepened my understanding of JavaScript/TypeScript and improved my ability to connect backend logic with frontend behavior through well-structured APIs
Designed a flight booking system called Fly with Sigma as a final project for a database course, involving ER diagrams, relational schemas, and SQL-based development using PostgreSQL, pgAdmin, and Docker. Gained insights into system design and effective team collaboration through shared responsibilities and balanced workloads.
Technology Stack
PostgreSQL | SQL | pgAdmin | Docker | MongoDB
Role Database System Designer
represents my core contribution to the initial setup of our database system. I've defined all the CREATE TABLE statements necessary for the entire system, directly reflecting our design in the ER Diagram. This foundational work provides a clear overview of the project's data structure, which is essential for understanding the system as a whole and allows for effective task distribution among the team, considering their interests and ensuring balanced workloads.
Through this process, I gained a deeper understanding of what data each table truly requires and its purpose—helping to identify redundancies or missing elements in our original ER design.
Note: This DDL code is just an example. See the full project code on GitHub (link above at the GitHub button).
are a component of the database system I designed, and here's an example of a Stored Procedure used for booking flight tickets (BookTicket).
Purpose: This BookTicket procedure automates the flight booking process in the database.
Input: It takes your user ID, flight details (number, seat, schedule), passenger info, baggage, gate, price, aircraft registration, currency, and payment method.
Ticket & Payment IDs: It generates unique IDs for both the ticket and the payment.
Core Action: It adds records to the TICKET, PAYMENT (initially pending), and PURCHASE tables, linking your booking.
Safety: It includes error handling to prevent incomplete bookings if something goes wrong.
Expiration: Reservations have a 24-hour expiry time.
Design a wireframe and user interface for the Larngear website, which serves as a platform for collecting items through check-ins at academic activity stations that introduce various engineering departments. These items can be used to customize cartoon avatars according to users' preferred styles, making participation in camp activities more engaging. The website also provides a space for participants to write heartfelt messages to their friends after the camp ends.
Technology Stack Figma
Role UX/UI Designer Graphic Designer
Designing the Mainpage
Designing the Dressing Game
Designing the Collecting Items
I was responsible for designing the theme and storyline of an interactive website, and creating user-centric web pages by developing wireframes in Figma.
Technology Stack Figma
Role
Content Creative
UX/UI Designer
Note: The project website has since been taken offline.
Led the development of a Java game, taking responsibility for game design, UI development, and coding. Successfully applied OOP concepts to create a well-structured and efficient game. Achieved an A in Programming Methodology.
Technology Stack Java
Role Game Designer Java Programmer
Factory Map
Jungle Map
Cave Map
Forest Map
I implemented game mechanics from an existing game, coded the rules, developed the backend to fetch APIs, and designed the game graphics. This was part of the Computer Engineering Essential course, where I earned an A.
Technology Stack
HTML | CSS | JavaScript
Role
Backend Developer Graphic Designer
Through my first coding project, a personal website created using HTML, CSS, JavaScript, and Tailwind CSS, I gained valuable experience and was honored to receive the 'Popular Vote' from tutor.
Technology Stack
HTML | CSS | JavaScript
Role
Frontend Developer