Project Archive

Every project, in detail.

Twelve builds across enterprise data engineering, machine learning and web development — what the problem was, what I did, and what changed as a result.

01

Enterprise Master Data Migration & Cleansing

Infineon Technologies · Master Data Developer

2025 – present

The problem

Infineon's engineering master data is spread across many system classes and worldwide sites. Over years of growth the same physical part could exist under several records, each with a slightly different attribute set. Duplicate and drifting records break downstream reporting, slow engineering lookups and create rework for the teams that depend on that data being one single truth.

What I did

I built the PL/SQL layer that consolidates those records. Staging tables hold candidate duplicates, a MERGE-based procedure promotes one golden record per part and repoints the rest, and every operation writes to an audit package so any change can be traced and rolled back.

Around that core I designed the ETL and data-warehouse flow — validation rules before load, explicit error handling instead of silent failures, and reconciliation counts after each run. The recurring parts of the job (data patching, cleansing, preparing comparison sheets) were moved into KNIME workflows so a repeat ticket became a button press rather than an afternoon.

The work also covered SAP-side migration and restructuring, plus the reporting that lets the business see data quality trending rather than guessing at it. Releases went out through weekly Jenkins pipelines across DEV, INT and PROD, which I ran as Software Release Manager.

Result

~30%leaner enterprise workflow
~50%less handling time per repeat ticket
Weeklyrelease cadence, 3 environments
02

Homestay Shimah Jay — Booking Website

Freelance · Design, build, deploy & SEO

2025

The problem

A family running six boutique homestays in Umbai and Telok Mas, Melaka, was taking every enquiry by WhatsApp. Guests could not see the houses side by side, prices had to be repeated by hand, and the business was invisible on Google. They needed a proper website that spoke both Malay and English, without a monthly platform fee.

What I did

Built with Next.js 16 (App Router), React 19 and Tailwind CSS v4 in TypeScript. Every page sits under a locale segment, so /en and /ms are real routes rather than a client-side toggle — better for both visitors and search engines.

Each house gets a statically generated page per locale, so the pages are pure HTML at request time and load fast on a phone with weak signal. The sitemap and robots files are generated for both locales with correct hreflang, and I set up Google Search Console, domain, DNS, SSL and CDN through Cloudflare and Vercel.

A rule-based chatbot answers the questions the owners were previously typing out by hand — check-in times, capacity, directions, pricing — so enquiries arrive already qualified.

Result

6houses, one page each, two locales
SSGstatic pages — no server cost
24/7chatbot handling routine questions
03

Breast Cancer Prediction using the HoverNet Approach

UKM · Final Year Project

2024 – 2025

The problem

Diagnosing breast cancer from histopathology slides means counting and classifying nuclei by eye — slow, tiring, and inconsistent between reviewers. A model that segments and classifies nuclei automatically gives the pathologist a fast second opinion instead of replacing their judgement.

What I did

Implemented the HoverNet framework, which predicts horizontal and vertical distance maps alongside the segmentation branch — that is what lets it separate nuclei that touch each other, the failure case simpler models struggle with. Trained and evaluated on the PanNuke dataset.

Wrapped the model in a Django web application so a clinician uploads a slide image and gets back the overlay and per-class counts, with results and user accounts persisted in MySQL. Preprocessing and dataset analysis were done in Jupyter and Excel.

Result

Simultaneoussegmentation + classification
Web-basedusable without any ML setup
First Classdegree outcome
04

Real-Time Face Mask Detection — YOLOv8 & OpenCV

Personal project · Computer vision

2024

The problem

Checking mask compliance manually at an entrance does not scale, and a plain "mask / no mask" classifier misses the most common real-world case: a mask worn under the nose. The model needed three classes, not two, and it needed to run live.

What I did

Labelled and augmented the dataset in LabelImg and Roboflow, then trained YOLOv8 for three classes: worn correctly (green), worn incorrectly (yellow), not worn (red). OpenCV handles the webcam stream and draws the colour-coded boxes; a Flask app serves it in the browser so no local install is needed.

Result

0.905mAP@50
0.898precision
0.848recall
0.636mAP@50-95
05

Network Fault & Internet Speed Prediction

TM Research & Development · Data Science Intern

2024 – 2025

The problem

Network faults were handled reactively: a customer complains, then someone looks. The telemetry to see problems coming already existed — access network logs, termination logs, CTT records, speed tests — but it was messy enough that nobody trusted it.

What I did

Started with the unglamorous half: cleaning and reconciling thousands of records across four sources, which lifted usable data quality by around 90%. Then built Random Forest Regression and LSTM time-series models to predict speed degradation and fault likelihood.

Results went into Power BI and Python (Matplotlib / Seaborn) dashboards reviewed weekly by the ops team. I also automated the data extraction with Selenium Robot Framework, and supported the OracleDB → MariaDB migration with ETL work and testing.

Result

80%+prediction accuracy
90%improvement in data quality
60%less manual reporting work
06

In-Flight Food Waste Prediction

AirAsia · K-Youth Employment Programme

2025

The problem

Load too much food onto a flight and it is thrown away; load too little and passengers go without. Every unit of that error is either wasted cost or lost revenue, repeated across hundreds of flights a day.

What I did

Worked with the data science team on XGBoost models to forecast waste per flight. My contribution was across the pipeline: cleaning the historic catering data, engineering features (route, time of day, aircraft, seasonality, load factor) and tuning hyperparameters against a held-out set.

Data tracking, validation and workflow monitoring ran on Google Cloud Platform. Alongside the modelling, the programme included formal training in multicultural teamwork, communication and presenting results to non-technical stakeholders — which mattered as much as the model itself.

Result

XGBoostgradient-boosted forecasting
GCPtracked, validated pipeline
3 monthsindustry apprenticeship
07

Angular & REST API Product Platform

Full-stack build · Authentication & CRUD

2024

The problem

A three-screen application that had to prove the fundamentals properly: real token authentication, protected routes, product management, and a detail view driven by asynchronous API queries — not mocked data.

What I did

Login — credentials POST to the API; a valid response stores the bearer token and unlocks the app, while any direct attempt to reach a protected route without one bounces back to login.

Home — a product table fetched with the bearer token. Adding opens a modal whose submit button stays disabled until every required field is filled; editing pre-fills the same modal and updates the row in place.

Detail — reached by clicking a product name, with the ID passed as a route parameter. It shows a paginated table with date filters (defaulting to yesterday → today) where both pagination and the range update asynchronously.

Result

3route-guarded modules
JWTbearer token flow
Asyncpaginated, filtered queries
08

Tweet Sentiment Classification

Modelling project · Natural language processing

2023

The problem

Free-text opinion is the hardest kind of data to summarise. The goal was to classify tweets as positive, negative or neutral, and — more usefully — to find out which classical model actually earns its place on this kind of text.

What I did

Built the full preprocessing chain: cleaning noise and handles, tokenisation, stop-word handling and vectorisation. Then trained and compared three classifiers — Logistic Regression, Naive Bayes and Support Vector Machines — on identical splits so the comparison was fair.

Result

3models benchmarked head to head
3-classpositive / negative / neutral
09

Customer Segmentation with K-Means

Data analysis project · Unsupervised learning

2023

The problem

"All customers" is not a useful marketing target. The task was to split mall customers into meaningful groups from annual income and spending score, and turn those groups into something a business could actually act on.

What I did

Cleaned and explored the dataset first — distributions, correlations, outliers — then used the elbow method to choose k rather than guessing it. Ran K-Means clustering and visualised the resulting segments with Matplotlib and Seaborn, then described each cluster in plain language: who they are, what they spend, what to offer them.

Result

Elbowmethod-driven cluster count
High-valuesegments identified for targeting
10

Product Catalog Web System

Web development project · Multi-role system

2023

The problem

A drawing-tools retailer needed more than a product list: staff, supervisors and customers all touch the same catalogue but should not see or do the same things.

What I did

Built a PHP + MySQL system with three permission levels — Admin, Supervisor and Normal User. Admins manage products including image upload; staff and customer accounts can be registered and updated; purchases generate an invoice. Deployed on UKM's server and tested locally under XAMPP, with a responsive Bootstrap front end.

Result

3user roles with distinct permissions
Full CRUDplus image upload & invoicing
11

Drawing Art Tools — Desktop Application

Desktop software · VB.NET & database integration

2022

The problem

A shop counter needs software that works without internet: add a product, take an order, amend it, print the report. Web was the wrong answer here — a native Windows form was the right one.

What I did

Built the application in Visual Studio 2019 with Visual Basic .NET, backed by an Access database and MySQL for product and order data. Full create / update / delete on both the catalogue and the orders, with real-time reads and writes between the forms and the database, plus a reporting screen.

Result

Offlineworks with no internet connection
2 storesAccess + MySQL integration
12

This Portfolio Website

Personal project · Third iteration, built from scratch

2026

The problem

The previous two versions of my portfolio worked, but they looked like every other developer template: a card grid, a couple of fade-ins, done. I wanted something that demonstrates front-end craft directly — you should be able to judge the work by using the page, before reading a word of it.

What I did

Designed the layout in Figma first, then built it by hand in plain HTML, CSS and JavaScript — no framework, no page builder, no build step, so it deploys straight to GitHub Pages.

The motion layer uses GSAP + ScrollTrigger for scroll-driven parallax and the timeline scrub, and Motion One — Framer Motion's vanilla-JS sibling — for the hero entrance. The glass surfaces are real backdrop-filter panels with a specular highlight that tracks the pointer, and there is a canvas particle field, a custom easing cursor, magnetic buttons and 3D tilt cards.

Everything is translated into English, Bahasa Melayu and 中文 through a small key-based i18n layer, and the assistant in the corner is a rule-based chatbot — keyword matching over a written answer sheet, no AI service, no API cost.

Result

0build steps or dependencies to install
3languages, one key-based dictionary
A11ykeyboard nav, reduced-motion, print styles