PROJECT 01 Live
UP HUB
A community platform for the UiTM student body combining a peer-to-peer marketplace, a community feed and an events module — with the SAF Tournament System built on top.
- Category
- Campus community platform
- Role
- Full-stack developer
- Domain
- uphub.my
AstroTurso / libSQLAuthenticationMarketplace functionalityTournament logic
How I built it
Context
Students needed one place to trade, follow campus activity and run events, including a full sports tournament.
What I owned
- Architecture
- Database
- Backend logic
- Interface
- Deployment
What I built
- Peer-to-peer marketplace, community feed and events module
- SAF Tournament System with automatic bracket generation
- Group-stage → single-elimination pipeline
- Custom Sepaktakraw MODE B draw engine
Highlights
- Bracket generation
- MODE B draw engine
- Marketplace + feed + events
Interesting challenge
Sport-specific seeding and pairing rules. The tournament logic is real application logic, not visual design — the draw engine has to follow the sport’s own rules.
PROJECT 02 In active development
GRN Golf
A hosted-game golf platform where players join a session and have their scores tracked through a structured game flow specification that I authored and refined.
- Category
- Golf platform
- Role
- Full-stack developer
- Domain
- grngolf.my
Astro 5Turso / libSQLDrizzle ORMBetter AuthRailwayNamecheap DNS
How I built it
Context
Group golf sessions need a clear, structured flow so scoring stays consistent from join to finish.
What I owned
- Game flow specification
- Schema design
- Authentication
- Deployment & DNS
What I built
- Session-based hosted game flow with score tracking
- Type-safe data layer with Drizzle ORM on Turso / libSQL
- Accounts, sessions and authentication via Better Auth
- Production deployment on a custom domain
Highlights
- Authored game flow spec
- Type-safe data layer
- Custom domain via CNAME + TXT
Interesting challenge
Turning a game flow specification I wrote myself into a structured, type-safe application — and wiring up hosting, CNAME and TXT records on Namecheap for Railway.
PROJECT 03 Live
The Pipeline Problem
An interactive dashboard exploring the gap between education outcomes and employment, built to make a dense dataset readable at a glance.
- Category
- Data visualisation dashboard
- Role
- Designer & developer
- Domain
- thepipelineproblem.my
AstroReactRecharts
How I built it
Context
A dense dataset about education and employment that is hard to read as a table.
What I owned
- Visual design
- Data storytelling
- Front-end build
- Deployment
What I built
- Interactive charts, each answering one specific question
- Recharts inside React components
- Astro for fast static delivery
Highlights
- One question per chart
- Statistical thinking
- Static delivery, interactive islands
Interesting challenge
Information hierarchy: deciding what each visualisation should answer, rather than simply displaying every number.
PROJECT 04 Launch pending — awaiting client sign-off
Akmal Group
A multi-brand corporate website for a Melaka-based conglomerate covering Akmal Services Sdn Bhd and Global Dignity Sdn Bhd.
- Category
- Corporate website · Melaka
- Role
- Client project
- Domain
- akmalgroup.my
Corporate web developmentMulti-brand information architectureResponsive designClient delivery
How I built it
Context
Two distinct business identities have to sit under one corporate umbrella without confusing visitors.
What I owned
- Content structure
- Information architecture
- Build
- Deployment
What I built
- Content structure
- Information architecture
- Website build
- Responsive design
- Deployment
Highlights
- Two brands, one umbrella
- Delivered end to end
Interesting challenge
Information architecture that keeps both brands clear while presenting one group.
PROJECT 05 Public site temporarily offline — under maintenance
KunciKu
I joined the team behind KunciKu, an early-stage Malaysian startup, during its early stages.
- Category
- Early-stage startup
- Role
- Team member
- Domain
- kunciku.com
AI-assisted developmentTask management
How I built it
Context
A young team that needed to move quickly and bring new people up to speed.
What I owned
- Early-stage support
- Task assignment
- Onboarding
What I built
- Helped build the KunciKu.com website using AI
- Task management, and assigning tasks to other engineers
- Established a foundation for vibe coding
- Explained vibe coding to new employees
Highlights
- AI-assisted build
- Team coordination
Interesting challenge
Coordinating engineers and onboarding new hires onto an AI-assisted workflow.