Supervisor: Prof. Dr. David C. Hogg (Professor of Artificial Intelligence in the School of Computing and Pro-Vice-Chancellor for Research and Innovation at University of Leeds).
Excellent written & oral communication. Have written & published peer-reviewed books, articles, conference papers, reports and presentations of many different types
Self-disciplined; can be assertive & self-driven to achieve goals
Excellent leading, managing, training, mentoring, persuasion, selling & presentation skills with in-depth understanding of technical, R&D, AI, statistical, engineering, computer science, IT, etc.
Have worked as full individual contributor for many different projects in many different areas for a long time, in addition to managing and leading, giving the ability to truly understand people, projects, deadlines, etc. for people reporting to me
Being able to explain difficult concepts, ideas, results, insights, findings, etc. to different types of audiences
Well-read in many different areas in life
High empathy; can relate to people; people skills
Expert in Data Science especially in Computer Vision, Machine Learning, Artificial Intelligence, and high-performance Software Engineering (C & C++)
Have worked in many different senior roles across many different industries
Experienced in commercial AI-related R&D and Software/Product/Service development from conception, design, formulation, implementation & execution until deployment, across all levels of individual contribution, team-work, management & leadership
Experienced with many programming languages, especially C & C++ (including in-depth knowledge; memory management; optimizations; dynamic libraries & loading; C-interfaces; interpreters & compilers; embedding; extending; custom data structures; algorithms and storage; implementing optimized/fast custom codes & libraries), and higher level languages such as Python and Java. Also experienced in C/C++ APIs of Python, Java and C#, and communicating back-and-forth between different programming languages
Experienced in architecture, implementation and delivery of professional AI, Computer Vision and Machine Learning SDKs, applications, APIs, services, reference implementations, demos, prototypes, reports, analytics, etc.
Past experience with Libraries, Frameworks and Specific Technologies
Custom formulation and architecture of Machine Learning and Deep Neural Network models and algorithms, and training them completely from scratch, to solve client/business problems that cannot be solved with publicly available models, datasets, and/or systems.
Custom solutions, custom data collection, custom data annotations (using in-house tools) and pre-processing pipelines and custom formulation of Machine Learning models, training them and deploying them.
Combination of different Machine Learning and Deep Learning models and algorithms.
Many different kinds of feature extraction algorithms applied to image and video data, including fixed manual feature engineering and learnt Convolutional Neural Networks.
Training different types of Machine Learning and Deep Learning models.
Porting, packaging and deploying different types of Machine Learning and Deep Learning models.
Deploying deep networks trained in Python in C++, by using C++ libraries, writing custom C++ code for neural network forward propagation, etc.
Object detection (including face detection, head detection and pedestrian detection).
Human activity recognition.
Face recognition.
Face biometric classification (such as age, gender and ethnicity).
People & head counting from top-down or near top-down cameras.
Transfer Learning and Domain Adaptation.
Combination of Machine Learning and Software Engineering.
G Suite – Gmail, Docs, Drive, Calendar, etc. for business/professional use
Google chat for business communications
Dynamic generation HTML code from Python and Java as part of an AI back-end system to produce scientific and commercial analytics reports.
Java libraries such as spark and javalin to make rest APIs in Java as part of a broader Computer Vision and Machine Learning web application.
Doxygen automatic documentation generation for C/C++.
Using Jupyter Notebook, Python and HTML with Python code, explanations, HTML code, videos, images, plots, etc. to create R&D documentations and tutorials for software engineering teams, and for people who may not be familiar with Computer Vision and Machine Learning.
Training custom deep networks with Tensorflow/keras, Dlib C++ library for object detection, face detection, face recognition, etc.
Raspberry Pi 3 Model B+, and Camera module; creating and deploying C++ Computer Vision applications for Raspberry Pi, as part of the application, compiled dlib C++ library, and OpenCV C++ library for ARM CPU architecture and for Raspbian OS. Also included some Deep Learning code.
Tiny C Compiler and libtcc to dynamically generate C code and compile it during run time (like a home-made JIT).
dyncall C library to build C function pointers dynamically at run time to call functions from DLLs after dynamically loading them. Normally after dynamically loading DLLs and to call the functions contained therein, we need . This approach was used when I wrote my own programming language and interpreter (called "kkh interpreter") that allows embedding C functions or C++ functions (with a C interface) anywhere inside the code (of the kkh interpreter programming language). In the background during run-time, the system automatically compiles all C/C++ functions that the user embed using libtcc or mingw64 to DLLs and automatically load them immediately to the make those functions available. Thus, the "kkh interpreter" can also be treated as a C or C++ interpreter or Just-In-Time (JIT) compiler which makes very useful to develop large C/C++ codebases/projects/products especially involve big-data processing, since each component/function can be developed one-at-a-time and all the variables held in RAM and you don't have to re-compile, re-run and serialize variables and memory to hard disk and then deserialize/re-load them into the memory. In fact, using the approach combined the power of both C/C++ and scripted/interpreted languages such as Python.
Mingw-w64 - GCC, C and C++ compilers for Windows 64 & 32 bits.
Cygwin - to compile and run C/C++ sources, projects, etc. written for Linux (using POSIX API, libraries, etc.) on Windows. Cygwin provides a library/layer that translates Linux OS APIs/calls to Window OS APIs/calls.
Selected Peer-Reviewed Publications
Below is a collection of links to some of the publications that can be found archived on the Internet. Kindly note that this page may not be updated with any of my latest (or other) publications.
Database Management Systems (undergraduate level, Malaysia)
Data Structures and Algorithms (undergraduate level, Malaysia)
Operating Systems and Networks (diploma level, Malaysia)
Links to Selected GitHub Repositories
Below is a collection of some of the GitHub repositories. Only some of the non-work-related materials done at out-of-office hours are in the public github repositories. Work-related algorithms and source code for projects at work, and most other personal projects cannot be revealed due to confidential nature.