Hello,
Building cross-platform mobile apps, Python & Laravel backends, and computer-vision systems for identity verification — serving government agencies & enterprises across Malaysia.
Grab My Resume
I'm a software engineer based in Sepang, Selangor, Malaysia with over 6 years of professional experience in mobile and web application development.
I graduated with a Bachelor of Computer Science with Honours (Software Engineering) from Universiti Malaysia Sarawak (UNIMAS) in 2020. Since then, I've worked across freelance engagements and a full-time R&D role — shipping real products to real users.
Currently at a leading digital identity & biometric tech company in Malaysia — serving government agencies and enterprises. I build Flutter mobile apps, design Python and Laravel backends, and develop eKYC systems spanning OCR, facial recognition, passive liveness, and NFC passport chip verification. Most recently I started an R&D effort on detecting tampered identity documents — still being trained and calibrated, with the accuracy an open question.
A FastAPI modular monolith serving document verification, passive liveness, and face matching from a single API. Document requests pass through a quality gate, then a colour + OCR classifier routes each card type to its own parser, with strict or weak validation contracts declared per document. Liveness runs an anti-spoof CNN; face matching runs on deep face embeddings. Hardened with API-key authentication, request-scoped audit logging, and async database access — fully containerised and reproducible from a single Compose file.
An ongoing R&D effort on flagging physically and digitally altered ID documents — started on my own initiative and since taken on by the company. Independent scored checks cover portrait paste seams, ghost-image mismatch, hologram chromaticity, frame geometry, and face-template proportions — each surfaced individually rather than collapsed into a single pass/fail verdict. Built over 30+ measured iterations against a calibrated corpus of genuine and tampered pairs, with rejected hypotheses documented as rigorously as the accepted ones. Whether the accuracy is good enough to be usable is still an open question — measured, not assumed.
The operator-facing console for the verification engine — run document, liveness, and tampering checks from the browser and inspect every individual check score behind a result, not just the verdict. Includes a searchable, sortable transaction log that reconciles engine and vision-model outcomes side by side, plus a full dual-language interface (English and Bahasa Melayu) with the active locale propagated to the backend so API-sourced strings match the selected language.
A JVM bytecode obfuscator built to replace a commercial licence in the SDK distribution pipeline. Rewrites classes through ASM with correct stack-frame recomputation — the genuinely hard part, since malformed frames fail verification on real Android bytecode at runtime rather than at build time. Performs symbol renaming across the class graph, and ships with a local web UI for configuring and running a protection pass.
An existing Android kiosk and counter app for reading national ID cards, owned by a senior colleague — contact-chip reading over serial and USB readers, contactless NFC through both the phone and external readers, live fingerprint verification against the on-card template, and pluggable facial-recognition engines selected by licence configuration. My contribution was revamping the interface and helping lift the NFC, wired-reader and fingerprint flows out of a single monolithic activity.
Developer-facing reference apps published alongside the eKYC SDK, each showing the shortest working integration for a given capability on both platforms. Distributed to Android developers through a Maven repository and kept in lockstep with SDK releases — including migrating consumers onto a second-generation landmark check and gating the discontinued version behind a clear not-supported path.
A native Android eKYC SDK library (v3.0.0) distributed as an AAR — built in Kotlin on top of a third-party biometric SDK. Supports API 26–34. Features include full onboarding, document capture (Custom & Ready-Made UI), passport MRZ scanning, NFC chip reading, passive liveness, smile liveness (active), multi-range liveness (active), and facial landmark detection (v1 & v2).
A native iOS eKYC framework distributed as an XCFramework — built in Swift using a third-party biometric SDK. Modules: Smart Face Capture, Face Auto Capture, Smile Liveness, Multi-Range Liveness, Smart Document Capture, Passport capture, and NFC Passport reading. Built via xcodebuild for both device and simulator targets.
Android demo app (Kotlin) that integrates and tests all 9 features of the eKYC SDK. Supports toggling between Custom UI and Ready-Made UI modes, allowing clients to see both integration styles before adopting the library.
SwiftUI test app for the iOS eKYC framework. Covers Smart Document Digitization, Smart Face Capture, Face Auto Capture, Smile Liveness, Multi-Range Liveness, Passport Capture, Passport NFC, Landmark V1 & V2, Full Onboarding, and Ready-Made UI modes.
Established a DexProtector obfuscation pipeline for both platforms — protecting the Android AAR and iOS XCFramework before distribution. Uses custom XML config rules per platform. Prevents reverse engineering of proprietary biometric algorithms.
A Digital ID prototype built in Flutter — integrates the native eKYC library via platform channels for OCR document scanning, face verification and identity onboarding on Android & iOS. Built for tender presentations to government agencies rather than production release.
Laravel-based admin portal for software license lifecycle management — issue, renew, expire — with user authentication and admin controls. Used to manage distribution of the eKYC SDK to enterprise clients.
A WhatsApp chatbot for a gold dealer — built with whatsapp-web.js and Node.js. Handles sell gold, trade-in gold, and live price check flows via conversational menus. Features a real-time web dashboard with Socket.io for QR auth status, and admin commands to set manual gold prices.
A full luxury personal branding website for a gold dealer in Kota Bharu — built with Express.js and pure HTML/CSS. Features a Malay-language UI with a premium gold aesthetic, multi-page layout (Home, About, Services, Contact), Open Graph meta for social sharing, and structured SEO.
Augmented Reality chemistry education app built in Unity 3D for a local university — visualises Atomic and Ionic Size in the Periodic Table to make abstract concepts tangible for students.
Comprehensive loan management system for a financial services client — handles applications, repayment tracking, customer records, and admin reporting. Delivered as a freelance engagement.
A private medical documentation system built in Laravel. A parent uploads daily wound photos with simple observation fields; a doctor opens a secure per-case QR link to review the healing timeline — read-only, with no account to create. Includes a day-grouped timeline, side-by-side progress comparison, ZIP export of originals, an installable PWA shell, and an admin dashboard with audit logging and soft-delete purge. Deliberately scoped as documentation only — not diagnosis, prediction, or treatment.
A personal eKYC exploration project building a smile liveness detection demo — covering both Flutter (cross-platform) and a native iOS demo app (XCFramework / Xcode). Built to deepen SDK knowledge beyond work scope, testing smile detection, face oval overlay, and liveness pass/fail states.
A Flutter educational game built for my daughter — teaches Malay letters A–Z through interactive drag-and-drop gameplay. Features 26 animal-themed levels, a hint system, scoring, text-to-speech audio, and a child-friendly UI designed for ages 3–7. Supports iOS, Android, and Web.
Operator interface for a document, liveness and tampering engine. The core design decision was to never collapse a result into a single pass/fail — every individual check score stays visible, with report-only estimates greyed out so they read as observations rather than verdicts. Includes an AI second-opinion flow behind explicit consent, and a full EN/BM interface where the locale follows through to backend-sourced strings.
View Full Design →A local console for running protection passes over a compiled SDK artifact. Designed for a developer audience, so the interface shows its work — keep rules as editable code rather than checkboxes, a live pass log including the frame mismatch it recovered from, and a symbol mapping table that makes the rename visible instead of opaque.
View Full Design →Kiosk and counter app design covering the full identity-verification journey — reader selection and device status, contactless read with per-step progress, decoded card data across tabbed sections with an explicit read-integrity panel, and live fingerprint matching against the on-card template. Built around an operator who is standing at a counter with a queue.
View Full Design →Reference app design for developers evaluating the SDK. Capabilities are split into a Ready Made / Custom Made taxonomy shared across both platforms, each opening to a copyable integration snippet beside the live flow it produces. Retired capabilities stay visible but clearly marked, with a migration note explaining what replaced them — documentation delivered as UI.
View Full Design →Full mobile app UI/UX design for an NFC-based ePassport reader — covers the complete user journey from chip scanning, live verification progress, identity result display (light & dark), through to authentication failure states. Designed to match the standards used in Malaysia's eKYC ecosystem.
View Full Design →Demo app showcasing a modular Android SDK for digital identity verification — document OCR capture, active face liveness detection, NFC chip reading, and end-to-end eKYC onboarding. Dark navy theme built to enterprise integration standards.
View Full Design →iOS-native eKYC onboarding flow following Apple HIG guidelines — from document instruction through camera capture, OCR field extraction, to full identity verification result. Light theme with Dynamic Island shell and iOS-standard UI components.
View Full Design →Government-grade digital ID app supporting OCR document scanning, offline QR code identity sharing, NFC reading, and face matching. Designed with a trusted blue government theme, works fully offline for verification in low-connectivity environments.
View Full Design →Admin portal for managing software license issuance, serial keys, and API access — featuring role-based login with 2FA OTP, a stats dashboard, license profile detail with API key management, and a serial number table. Built with Laravel and Argon Design System.
View Full Design →A conversational WhatsApp bot for a gold dealer — guiding customers through sell gold & trade-in flows with automated price estimates, gold type selection, and weight input. Features a real-time admin dashboard and manual price override commands. Built as a personal hobby project.
View Full Design →A luxury personal branding website for a gold dealer in Kota Bharu — designed with a premium dark-gold aesthetic and written entirely in Malay. Features a full multi-page layout (Home, About, Services, Contact), structured SEO meta, and Open Graph tags for social media marketing.
View Full Design →Full-stack loan pipeline system with five user roles: Superadmin, Admin, Merchant, Agent, and Customer. Features loan application intake, multi-stage approval workflow, agent commission tracking, merchant management, and role-scoped dashboards — all built on Laravel with Argon Design System.
View Full Design →Two interfaces for two very different users. Parents get a day-grouped photo timeline built for one-handed phone use during a dressing change; doctors get a read-only case view opened straight from a QR link with no account and no login. The design leans on restraint — a persistent banner states the tool documents wounds and does not diagnose them.
View Full Design →A personal hobby eKYC project exploring smile (active) liveness detection — built in both Flutter and as a native iOS demo app. Features a face oval overlay, real-time smile confidence scoring, and liveness pass/fail result state. Built to deepen SDK knowledge beyond work boundaries.
View Full Design →A colourful kids educational game in Bahasa Melayu where children learn the alphabet by spelling animal names. Rainbow gradient UI with drag-and-drop letter tiles, animated animal characters, star ratings, and progress tracking through A–Z levels.
View Full Design →Have a project or opportunity? I'd love to hear from you.
Drop your email below — I'll know you stopped by, and your download will start right away.
Downloading now — thanks for visiting!