Tel: (+852) 5224 7740Email: ccm.rex17@gmail.com

Summary

I am Chan Cheuk Man, Rex, a T-shaped frontend developer with 2.5 years of experience and a Higher Diploma in Computer Game Development (with merit) who loves animation. I participated in the system development life cycle (SDLC) so as to build the e-commerce, web, and game systems which consist of inter-dependent components that serve a common purpose. I am migrating my e-Portfolios to Shopify Hydrogen with React, Remix, and GraphQL.

Corporations

Gained fulltime and freelance experience in the below corporations.

  • CLAERgo
  • Penker

Educational Organizations

Developed knowledge and skills in the below educational organizations.

  • hopify Academy
  • CLAP@JC
  • Google Digital Garage
  • amps
  • CUSCS

Projects

Participated in the following projects in frontend web development career.

  • Broadway Lifestyle
  • Midea Eureka
  • Hoi Tin
  • HiPP
  • Heybike
  • Telford (Tao Ti)
  • South Stream
  • Suunto
  • nextCIGAR
  • Hy! Lee Garden
  • e-Jacob

Skills

The following presents my skillset in the industry.

    https://cdnhttps://cdn
    https://cdnhttps://cdn
    https://cdnhttps://cdn
    https://cdnhttps://cdn
    https://cdnhttps://cdn
    https://cdnhttps://cdn
    https://cdnhttps://cdn
    https://cdnhttps://cdn
    https://cdnhttps://cdn

Platforms

I experienced in the following platforms.

  • Shopify Plus
  • Magento
  • HubSpot
  • Unity
  • Photoshop

Modern Frontend Framework

I practice the following concepts of modern frontend web frameworks during development.

FSM

Finite-state machine (FSM) is a design pattern applied in modern frontend web frameworks which provide a clear representation of a finite number of states with transitions between these states triggered by events or specific conditions.

State Management

The view updates automatically through data-binding when the state of data model changes so as to synchronize state and visual presentation. For instance, React hooks and Vue Reactivity APIs are variants of reactive state management systems.

State management consists of three parts:

  • State
  • View
  • Actions
  • The source of truth of a web application at a specific point in time that is carried by the observable properties.
    e.g. a string, an integer, a boolean, or an array.
  • State
  • View
  • Actions
  • Interactive State Management Flow

    Portraits

    Mastered Adobe Photoshop with rich experience in digital art. The following portraits representing myself and my friends.

    portrait-0portrait-1portrait-2portrait-3portrait-4portrait-5portrait-6portrait-7portrait-8portrait-9

    Animation

    Familiar with web animation which adds the dimension of time to the GUI of a web page in order to convey information organized by data, feedback, and aesthetic qualities to end-users through storytelling.

    Trained by Japanese traditional animation education and learned animation theory and practical skills which can transfer to web animation development.

    Developed scroll event-driven animations for Midea Eureka and Heybike product pages.

    Animation Types

    • Straight Ahead Animation: This is a difficult technique where the UX/UI designer or frontend developer generates a series of frames in sequence, one after the other. However, it is the most experimental approach which allows us to make decisions and change ideas as we want. I created straight ahead animation with image sequences generated by UX/UI designer for Heybike X-Series page header.
    • Pose-to-Pose Animation: This is the most popular approach applied in frontend web development, as it forms the core of CSS transitions and keyframes. By defining the significant points in a series of actions, we can separate the animation into keyframes and in-betweens. Notably, many web standard methods handle the tweening for us automatically.

    Storyboard

    Storyboard is a blueprint of a story or concept that is used to plan and organize the sequence of actions in an animation or storytelling flow in pre-production.

    Storybroad of Graduation Project, 2019

    Keyframing and Tweening

    An animation can be breakdown into frames including keyframes, breakdowns, and in-betweens.

    Each frame of an action should be number in the top-right corner on the animation paper. We should always circle keyframe numbers and put parenthesis around breakdown number.

    With the frames numbered, we should create an action chart with a direction from left (first key) to right (next key) on the first keyframe. This chart indicates how many in-betweens are needed and how they will be spaced between two keyframes.

    The more in-betweens there are in an animation, the slower and smoother the action will appear.

    Keyframing Practice, 2022
    • Keyframes: Keyframes are the major scenes in an action where that action ceases or change direction.
    • In-betweens: In-betweens are the intermediate frames between keyframes while a breakdown is the first in-between and midway between two keyframes.

    Skeleton

    We can utilize skeletons in both 2D and 3D animations while skeleton is a structure for animating articulate and hierarchical actions in order to simulate the actions of physical bodies or machines.

    ​Thus, the child bones linked to another bone will follow their parent once the parent is rotated around the determined pivot points known as joints.

    Skeletal structures can represent by a tree data structure where it has single root joint, several parent joints, and several child joints.

    The action of child bone follows its parent is called overlapping action and this motion relate to or is the result of the main action.

    Skeleton of Two Bones Interconnected by One Joint, 2024

    ​Web Animation Methods

    • Transitions: By applying the concept of finite-state machines (FSM), CSS fills in the in-betweens smoothly over a specified duration between two states.
    • Keyframes: CSS keyframes implement the traditional animation theory of pose-to-pose since the frontend developer can break down the timeline into several phases by defining the significant points as keyframes.
    • setInterval: A basic JavaScript timing method used to trigger animations at fixed intervals, though less efficient than requestAnimationFrame.
    • requestAnimationFrame: The high-performance method for scripted animations, ensuring synchronization with the browser's refresh rate.
    • jQuery Effects: jQuery provides simplification of commonly complex animation operations such as fade-in/out, slide-up/down, and animate, etc.

    UI Slicing

    • Education: ECertificate of Front-end Web Developer (CLAP@JC)
    • Projects: Broadway Lifestyle, Telford (Tao Ti), HiPP, Heybike, South Stream, nextCIGAR, Midea Eureka, CLEARgo.com, Hoi Tin (Jacobson), e-Jacob

    Selectors

    CLEARgo Pseudo Class, 2024
    • IDs (#): A unique identity code of an HTML element on single page. e.g. #header, #main, #footer
    • Classes (.): A class name shared by multiple HTML elements. e.g. .gallery, .section-heading, .description
    • Pseudo-classes (:): A pseudo-class let us apply styles based on state transitions on the grounds of FSM. e.g. :hover, :focus, :active, :visited, :disabled, :first-child, :nth-child(even), :lang(en), :before, :first-letter

    Box Model

    The CSS box model is essentially a box wraps around each HTML element where a box consists of the below:

    hy! Xmas Campaign CTA Nav, 2023
    • Content: The content like plain text or multimedia of the box.
    • Padding: The area inside the border and surrounding the content.
    • Border: A visible border of the box between the padding and margin.
    • Margin: The area outside the border and surrounding the border.

    Layout

    Heybike Bento Grids, 2025
    • Table: Traditional nested HTML layout system consists of table rows and items included table head and table data.
    • Float: Traditional CSS layout system placed element on the left or right.
    • Flexbox: A 1-dimentional CSS3 layout module for greater control over arranging elements along on x-axis or y-axis.
    • Grid: A 2-dimentional CSS3 layout module imported concept of gird from print design into web. It provides a system for laying elements out in rows and columns.

    SEO

    Implemented SEO strategies such as semantic HTML, metadata, JSON-LD, heading hierarchy, and HTML attributes.

    CLEARgo JSON-LD, 2024

    AJAX

    Asynchronous JavaScript and XML (AJAX) is a set of web development techniques that allows client-side scripts send requests to the web server programs in an asynchronous format without reloading the entire page.

    Web server response was in XML format in the early days of AJAX, but most modern web services use JSON format for data interchange.

    Data Interchange

    XML and JSON are used for data interchange in client-server communication.

    In modern web development, JSON is preferred whenever the additional features implemented by XML are deemed to be unnecessary.

    XML

    Extensible Markup Language (XML) is a markup language which represents data as tag-based tree structure in data interchange.

    Unlike JSON, XML uses namespaces to distinguish between properties that are different but share the same name.

    While JSON limited data types to basic types, XML supports many complex data types.

    XML has to be parsed with an XML parser.

    JSON

    JavaScript Object Notation (JSON) is the most popular interchange language in modern web development since JSON is directly understandable to JavaScript on the grounds of vast majority of JavaScript popularity.

    JSON is a lightweight interchange format which is parsed quicker than XML with less computational resource usage.

    JSON uses a map with key-value pairs while it can use array in value.

    Unlike XML, JSON can be directly parsed by a standard JavaScript function.

    Web Components

    Web Components refers to a set of web native APIs which allows web developers to create reusable modular custom elements.

    Custom Element

    Custom elements are HTML element which allow web developers to define their own properties, behaviors, and styles.

    A custom element is implemented as a class that extends the base class HTMLElement or standard HTML elements such as HTMLParagraphElement) and img (HTMLImageElement).

    After defining the class, we must register the custom element to the current page and start using it in our code.

    The Custom Elements API provides lifecycle callbacks including connectedCallback and disconnectedCallback that enable us to register and unregister events.

    Custom State

    The CustomStateSet and :state() are mechanisms for defining and managing custom state within custom elements based on state management.

    • CustomStateSet: The CustomStateSet interface stores an ordered list of state values for an custom element and allows states to be added and removed from the set.
    • :state(): The :state() pseudo-class allows for styling based on the current state of the element.

    Shadow DOM

    Shadow DOM serves for encapsulation of internal DOM structure and style rules to prevent style leakage from the light DOM.

    • Shadow Host: The regular DOM node that the shadow DOM is attached to.
    • Shadow Root: The root node of the shadow DOM tree.
    • Shadow Tree: The DOM subtree within the shadow root that contains the elements and styles encapsulated from the light DOM.
    Slots

    Slots only exist in Shadow DOM and act as placeholder to get content from Light DOM.

    It allows us to build web components modularly while we can modify component instances to hold different components so as to offer more flexibility and versatility.

    In shadow DOM, slot element with attribute name="X" defines an insertion point to render elements with attribute slot="X".

    For rendering purposes for each slot element with attribute name="X" in Shadow DOM, the browser looks for slot="X" with the same name in the light DOM.

    The slot attribute is only valid for top-level children of the shadow host while the grandchildren with this attribute are ignored.

    The multiple elements in light DOM are appended into the slot one after another if they have the same name.

    HTML Template

    A template is a declarative element to define a reusable snippet of HTML that can be cloned and inserted in the document by script while the browser ignores templates when loading DOM content.

    We can create multiple instances of the same HTML with dynamic content without having to rewrite values inside the code by using standard DOM manipulation APIs.

    Each template element has an associated DocumentFragment object as template content.

    Computer Graphics Programming

    Rasterizers like WebGL and DirectX convert 3D vector primitives included triangles (polygons), points (vertices), and lines (edges) into 2D pixel-based graphics on the screen.

    Created basic scrolling event-driven 3D transformation animation including rotation and translation of 3D box object for CLEARgo oversea expansion page using Three.js library on WebGL environment.

    CLEARgo Oversea Expansion Page, 2024

    Developed Chrismas gift delivery mini game implemented AABB collision detection using DirectX in Higher Diploma course

    Design

    UX Design

    User Research

    User research is to use various methods to understand users' pain points consist of desires, behaviors, habits, motivations, and environments in order to create useful, usable, and delightful digital products.

    Practiced user stories in Movie Web Application project.

    Movie Web Application User Stories, 2023
    Feedback

    We should visualize state changes through visual cues and animations to draw attention and explain to end-users about their actions and the system's responses.

    For progress of a task, we should provide the degree of completion to indicate the current status and expected completion time.

    Broadway Feedback, 2026
    Storytelling

    Storytelling uses spatial and temporal signs to convey experience consists of narrative, emotion and aesthetic qualities in imagination of a user.

    One of the strength strategies is to use storytelling to take a non-tangible concept and making it relatable through concrete ideas.

    Broadway Storytelling, 2026
    Branding

    Branding refers to a specific style of fonts, layouts, animation, interactions, and visual elements used in the presentation of information system by organizations.

    Unified styles enable users to associate a particular organization with a professional brand image represented by its assaesthetic qualities, timing of animations, and usability of interactions.

    HiPP Branding, 2025
    A/B Testing

    A/B testing is a quantitative research method comparing two or more variants of a design to determine which one performs better in terms of conversion rate, click-through rate (CTR), bounce rate, retention rate, return on investment (ROI), and average revenue per user (ARPU).

    This continous design improvement approach helps design and marketing teams make data-driven decisions to optimize user experience and reach business goals.

    A/B Testing

    System Analysis

    Learned Unified Modeling Language (UML) such as class diagram, use case diagram, and activity diagram.

    Class Diagram, 2018
    Use Case Diagram, 2018
    Activity Diagram, 2018

    UI Design

    Learned fundamental knowledge and skills of design, art, and traditional animation, and passed examination of elementary drawing held by amps, a duly constituted animation school under Cool Japan Policy introduced by Japanese government.

    Experienced in pre-production, production, and post-production of freelance design and digital painting commissions.

    Paradigms and Syntagms

    In semiotics, all relations on canvas are paradigmatic and syntagmatic relations where a design no matter user interface, animation, or interaction is constructed of paradigmatic axis and syntagmatic axis.

    Movie Web Application Design, 2023
    • Paradigmatic Axis: Relations between elements that can be substituted for one another in a given context.
    • Syntagmatic Axis: Relations between elements that combine the selected signs into one composition.
    Visual Metaphor

    Visual metaphor is the ability of image to convey intellectual and emotional meanings, mood, tone, atmosphere, and subtext in addition to their straightforward reality.

    Every visual elements carry an implied meaning that can be a powerful storytelling tool.

    For instance, the colour scheme of a design can be a visual metaphor for the brand's identity and values.

    Mood Board

    A mood board is a visual tool that gathers images, colours and textures that represent the desired aesthetic and atmosphere of a project. Mood boards are prototypes of colour schemes and entire visual identity.

    Mood Board, 2022
    Colour Scheme

    In general design, a effective colour scheme is applying the golden ratio: 60:30:10. Under this proportion, we can divide the colour schema of a design as primary colour, secondary colour, and accent colours.

    Colour Scheme
    • Primary colour: Used for about 60% of a design which mainly builds up the theme and mood of the whole.
    • Secondary colour: Used for about 30% of a design which is usually an analogous colour, in terms of hue, tone, or saturation, of primary colour so as to compliment it and form the harmony.
    • Accent colours: Used for about 10% of a design which are always opposite colors totally differ from primary and secondary colours in order to accessorize the design and grab viewer's attention.

    Backend Development

    Developed basic concepts of CRUD, salting, and injections by PHP in Internet Programming course in Higher Diploma programme.

    Built-up a login and signup system by using PHP and MySQL on XAMPP environment.

    CRUD Operations

    Create, read, update, and delete (CRUD) are the basic operations of data manipulation.

    Signup and Login System, 2018
    • Create: To create a resource, developer sends a POST request containing an object with properties to the API point like /api/products, which then responds with an object which has an ID that includes the relevant data fields.
    • Read: To read a resource, developer sends a GET request to the API endpoint, and then it responds with a list or single object. We sends that request to the original API endpoint like /api/products when we want to read all of the data, while we sends the request to the endpoint with its ID like /api/products/1 if we to search for specific data.
    • Update: To update a resource, developer sends a PUT request containing the updated object to the API endpoint with ID, and then it responds with an object included the relevant data fields.
    • Delete: To delete a resource, developer sends a DELETE request to the API endpoint with the target ID. However, the delete request is not prefer to use due to concerns about data integrity in reality.

    Salting

    Salting is a security technique used to enhance password hashing by adding a random value called salt. This makes it more difficult for attackers to use precomputed tables such as rainbow tables to crack passwords.

    In this process, the salt is concatenated and processed with a cryptographic hashing algorithm, and the output is stored along with the salt in the database.

    rexChan123

    (Password)

    rexChan123rteZb

    (Password + Salt)

    4b6f9b7e5e2a6b4e6e5b1d32b9b96b223b6f2c5b5dbb5d3e1ff9d3d06b6a3b5a

    (Hashed Password + Salt)

    Password Hash Salting Figure

    Code Injection

    Injection attacks like SQL injection occur when an attacker is able to inject malicious code into a query or command in order to exfiltrate data or damage storage.

    To prevent injection attacks, developers should apply data validation and verification techniques from pre-processing to post-processing.

    SQL Injection

    SQL injection attack consists of injection of malicious SQL commands via input data from the client to the application that are later passed to an instance of a database for execution and aim to affect the execution of predefined SQL commands.

    The primary form of SQL injection consists of direct insertion of code into user-input variables which are concatenated with SQL commands and executed.

    A less direct attack injects malicious code into strings are subsequently concatenated into a dynamic SQL commands, the malicious code is then executed.

    A successful SQL injection exploit can access sensitive data in the database, modify database data, execute administrative operations within the database, for instance, shutdown the DBMS, recover the content of a given file present on the DBMS file system and in some cases issue commands to the operating system.

    XSS

    Dynamic websites are more vulnerable to a type of code injection called Cross-Site Scripting (XSS).

    In this form of injection attack, the attackers introduce improper scripts into the web browsers.

    This technique often used is to inject JavaScript, HTML or any other types of codes that web browsers may execute.

    Once the injection is successfully performed, hackers can carry out a variety of malicious attacks including account hijacking, changing of user settings, cookie theft and poisoning, or false advertising.

    Database Management

    Data Hierarchy
    1. Database / Storage
    2. Table / File
    3. Row / Record
    4. Column / Field
    5. Byte / Character
    6. Bit
    Data Hierarchy Figure
    Normalization

    Normalization is a systematic approach of decomposing tables to eliminate data redundancy. A flat file database store all the data in one table which led to anomalies.

    DSE SBA Normalization, 2015

    Data redundancy refers to repetition of data stored in different locations. Storing same data redundantly in more than one place within a database can lead to anomalies.

    • Update Anomalies: Once one copy of repeated data is updated, inconsistency is created unless all copies updated.
    • Insertion Anomalies: It may not be possible to store some data unless the other is stored as well.
    • Deletion Anomalies: It may not be possible to drop some data unless the other is dropped as well.
    Keys
    Database Management Assignment, 2018
    • Primary Key: A primary key is a attribute or a combination of attributes (known as composite key) in a table to uniquely identify a record.
    • Candidate Key: A candidate key is a minimal set of attributes that uniquely identifies a record in a table.
    • Composite Key: A composite key is a combination of two or more attributes that uniquely identifies a record in a table.
    • Super Key: A super key is any set of attributes that uniquely identifies a record in a table.
    • Foreign Key: A foreign key is a attribute or a combination of attributes in a table which refers to the primary key of another table.
    Data Dictionary

    A data dictionary is a collection of table structures which explains an unfamiliar dataset and clarifies the meanings of various data terms to developers and users by listing codes, data types, lengths, examples, and descriptions of the fields.

    Data Dictionary, 2018

    ORM

    To against SQL injection, ORM is a backend approach that provides a layer of abstraction that helps prevent SQL injection attacks by automatically escaping user input and generating safe SQL queries.

    An object-relational mapping (ORM), also referred to as object-relational manager, is a process of connecting objects in an object-oriented programming language to tables in an underlying relational database.

    When building backends, developers define objects as a SQL-free data representation in a modular application to query and manipulate data in databases using the same logic as the backend code.

    However, this approach slows down CRUD performance because of the overhead of abstraction.

    Certificates

    • Confirmation of Employment Termination of CLEARgo, 2026
    • Badge of Liquid Storefronts for Theme Developers, 2024
    • Certificate of Front-end Web Developer Program, 2023
    • Certificate of Fundamentals of Digital Marketing, 2023
    • Penker Commission, 2022
    • Certificate of Manganime Elementary Drawing, 2022
    • Dragon Art Digital Art Contract, 2021
    • Higher Diploma in Computer Game Development, 2019
    • Certificate of SQL, 2018
    • Hong Kong Diploma of Secondary Education Examination, 2016
    mountaincargrasstree