Online Resume
Anson Ngan
|
|
Immediately Avaiable
28+ years of experience in engineering and technology development
Latest Highlights

Side-projects

  • Mobile App
    • Kotlin Multiplatform
    • React Native
  • Blockchain
    • Smart Contract (Solidity)
    • Local environment (Ganache)
    • Wallet / Transactions (TypeScript)
  • Artificial intelligence
    • Model Concept Protocol (MCP) with TypeScript
    • Resources / Resource Templates
    • Prompts
    • Tools
  • Serverless Architecture with Cloudflare
    • Cloudflare Worker
    • Astro 5
    • Tailwind CSS
    • Supabase
    • Nx
  • Microservices
    • MongoDB
    • Kafka
    • Kubernetes (minikube)
  • React 19
    • React Server Components

Cloud Platform (AWS)

  • AWS Load Balancer
  • Route53
  • VPC
  • Lambda
  • Cloudfront
  • EC2
  • S3
  • SES
  • EventBridge
  • SQS
  • SNS
  • RDS
  • DynamoDB

System Design and Architect

  • API backend with SpringBoot
  • Backend engine supporting asynchronous invocation via message queue
  • Serverless architecture with AWS Lambda, Application Load Balancer, and CloudFront
  • Static site generation (SSR) with Next.js and Astro
  • CQRS with MSSQL and Elastic
  • Containerization with Docker and docker compose
  • Infrastructure-as-code with Terraform on AWS
  • Frameworks: Next.js, Astro, Strapi, PayloadCMS
  • Others: Circuit Breaker, API Gateway, Microservices, Rate Limiting, Event Driven, Event Sourcing, Layer,

Mobile

  • Android native with Jetpack compose
  • Multiplatform: Flutter, Koltin multiplatform, React Native

DevOps

  • Setup and maintain AWS environment using Terraform
  • Containerize different components with Dockers using docker compose for microservices architecture
  • Monitor component resource usage with Grafana
  • Use Jenkins and Amazon CodeBuild for CI

Task Automations with OCR

  • Use OCR technologies (tesseract.js and pdfjs libraries) in a React frontend to load PDF files and extract data
  • Call API with the extract data to retrieve additional information for further processing

Task Automations for report generation

  • Build reports using JasperReport
  • Implement serverless solution (AWS Lambda) to automate the report generation in PDF and Excel files

Full Stack Development

  • Build front-end using React and Tailwind CSS
  • Improve code readability and static type checking with TypeScript and Zod
  • Manage monorepos with Nx
  • Build and package with Vite for front-end and esbuild for the backend modules
  • Use Spring framework and Spring Boot for the Java modules
  • Deploy Lambda in AWS for serverless components
  • Digitialize day-to-day operations using shell scripts and Nodejs

Project Management

  • Lead the project manager to work with uses to prioritize tasks
  • Provide technical advice to the implement the changes

Team Management

  • Build a team of 30+ from scratch
  • 4 development teams with 4 members per team on Android and iOS development
  • PMO team with 3 project managers and 3 project coordinators
  • Design team with 3 designers
  • QA team with 4 QA engineers

Artificial Intelligence

  • Build PoC chatbot
  • Enable ReAct in chatbot
Projects

Mini-site — Wealth Management Cube Limited (2024)

Technical challenges

  • Fund data is provided via CSV data files via SFTP on regularly basis (daily, monthly and quarterly)
  • Data in different files are related with values in one or more columns

Technical solutions

  • Build application using Nodejs and deployed as Lambda in AWS using serverless application
  • Use EventBridge in AWS as schedule to run job on daily basis
  • Implement static site generation using Next.js
  • Load data and use Zod to validate data
  • Build UI components with React and Tailwind CSS for styling

Digital Transformation — Wealth Management Cube Limited (2020 ~ 2024)

Manual processes

  • Generation of the monthly statements involves a number of steps, including database backup / restore, data reconciliation, statement generation and files upload, and all are done manually
  • To fulfill the SFC licensing requirements, a number of reminders are sent to the users on a regular basis based on various criteria, including the users' professional investor roles, password policy, account status etc.
  • Reports need to be generated and filed (e.g. upload to repositories or send to clients as email attachment)
  • Extract information from a number of PDF files in a number of predefined format (varies based on sources) and enter to the system

Technical solutions

  • Split the tasks into three groups, namely pre-generation, reconciliation and generation, as well as post-generation. Automating the tasks in the first and last groups using shell scripts while the tasks in the second have to be done manually.
  • Schedule the AWS Lambda functions to extract data from the database based on the business logic to compose and send reminders to the users
  • Use scheduled jobs to generate reports which will then be uploaded to server and/or sent to dedicated users via email
  • Leverage open-source libraries to preprocess (e.g. unzip with/without password), extract data and update the system via APIs once users have reviewed

API Server — Wealth Management Cube Limited (2021 ~ 2022)

Project management challenges

  • Lack of key stakeholder to confirm requirements
  • Moving targets with new requests from business and operation teams
  • Mixed with legacy business rules no longer relevant

Project management improvement

  • Freeze the project code for an initial version
  • Identify key stakeholders from business and operation teams
  • Assign senior developer to review and walk through requirements with stakeholders

Technical challenges

  • Existing code mixed with legacy business logic no longer relevant
  • Not possible to scale up with the existing legacy monolithic server
  • Difficult to implement new features with the existing code base

Technical solutions

  • Use Spring Boot to move away from the existing code base to focus on the latest business requirements
  • Deploy as a standalone server to allow separate deployment and release management
  • Update the existing code to use the new APi module gradually
  • Support the latest industrial standard in the API implementation, including OpenApi specification

Modern UI Revamp - Wealth Management Cube Limited (2020 - 2024)

Technical challenges

  • Frontend is implemented in JSP mixing up with HTML, JavaScript, CSS and Java code
  • Using legacy frontend technologies, e.g. JQuery
  • Inconsistent user interface, e.g. different wordings for the same action in different pages
  • Poor user experience, e.g. slow, missing UI feedback
  • Data scattered in many tables (over normalized with legacy design) results in complicated SQL and slow performance

Technical solutions

  • Introduce modern frontend frameworking using React
  • Use shared components in different pages to provide consistent look-and-feel
  • Use modern technologies (e.g. React Hook) to replace jQuery
  • Leverage open source library (e.g. MUI for material UI) to provide modem UX
  • Import data on a regular basis to a NoSQL database (i.e. Elastic) to optimize for read and facilitate efficient query for data analysis

Major Product Upgrade Wealth Management Cube Limited (2019~2020)

Project management challenges

  • Missing big picture with many unfinished tasks
  • Weak communication among team members and client

Project management improvement

  • Review and prioritize all the outstanding issues in the ticket management system
  • Communicate with the client on daily basis to confirm the requirements and get their consensus on the task priority as well as delivery time
  • Hold daily standup meeting with the development team to discuss and address any outstanding issues on the daily tasks
  • Review the overall architecture to improve the stability and performance
  • Introduce modern technical development tools (e.g. Docker) to improve the productivity

Technical challenges

  • Complicated steps to local environment setup
  • Inappropriate technology stack
  • Anti-pattern in web application implementation

Technical solutions

  • Containerize the key components of the system (including the application server and database) by using docker compose
  • Use Dockerfile to generate configuration files with environment variables
  • Use latest stable version of TomEE to replace an out-dated Glassfish
  • Use Spring Boot and Apache ActiveMQ to build a new message-based module for the batch processing to move the long-running process from the application server to a standalone server

Migration to Cloud (AWS) — Wealth Management Cube Limited (2019 ~ 2021)

Technical challenges

  • Migration of a legacy system from on-premises with out-dated hardware and operating system
  • Frequent production outages due to limited hardware support and lack of technical know-how
  • Too many manual processes across the clock

Technical solutions

  • Design and setup AWS cloud platform for the production environment for better cost of ownership
  • Containerize the key components and enable CI using Jenkins
  • Use Terraform to set up DR site from scratch; save cost by eliminating a standby site
  • Use Grafana and Prometheus to monitor system usage and set up alert for potential production issues (e.g. memory usage)
  • Automate the report generate process directly in client folders to replace the existing manual process

Android Native Apps The Knot Asia Pacific (2012 ~ 2019)

Management challenges

  • Start from scratch

Management Solutions

  • Started with a small team of 2 junior developers and one project manager
  • Set up the teams to align with the line of business; let each team focus on one key areas to improve productivity and communication with the business stakeholders
  • Maintain small team of 5 members (one lead and 4 developers) for 3 Android team and 1 iOS team for better communication
  • Mentor the team leads with weekly one-on-one meetings
  • Regular technical sharing sessions with all team members

Technical challenges

  • Limited hardware configuration of Android phone back in the old day
  • High requirement on the image resolution
  • Complicated user interface design
  • Evolution of various technical stack on Android platform

Technical solutions

  • Use customized image library to display the high resolution images in our Android application for better memory management
  • Build framework to support various data types returned from the API endpoints and match to the user interface components
  • Introduce layer architecture, i.e. layers for user interface, business logic, data repositories (including local preferences, database and APIs), to decouple logic on different aspects
  • Schedule regular sessions to share technical know-how and business domain knowledge among all the developers

Wedding Registry Tool The Knot Asia Pacific (2009 ~ 2017)

Challenges

  • Understand the company culture and processes with the US team
  • Migration from on-premises to public cloud platform in 2012
  • Complicated search with aggregation on various dimensions
  • Improve UI/UX with model design of the web application

Solutions

  • Schedule regular group and one-on-one meetings with the counterparts on the US side
  • Write up document for various processes, including deployment, testing procedure
  • Leverage the components available (including Elastic Beanstalk, DynamoDB, RDS, Elastic Load Balancer) in the AWS cloud platform
  • Move from waterfall model to agile to deliver features in sprints and get feedback from users faster
  • Introduce Solr/Elastic as NoSQL solution to support various types of search aggregations
  • Implement frontend with React to build modern UI and better UX

Online Accounting System New World Services Holding LImited (2001~2003)

Technical challenges

  • Replace a 20-year-old legacy COBOL/MS-DOS system
  • Improve the productivity by streamlining the existing process
  • Provide better services to different stakeholders, including the accountants, staff in the estate management offices, and residents

Technical solutions

  • Build a web-based application using ASP.NET/C# with Microsoft SQL Server on Windows Server to replace the legacy system to provide better user interface and performance
  • With the appropriate access control settings, different user groups are created for different stakeholders in multiple locations all over Hong Kong (e.g. accountants, staff in the estate management offices) to access the required functions and data
  • Share workload among stakeholders to streamline the process and avoid duplicated data entry. For example, staff in the estate management offices collect management fee and input directly into the system
  • To further optimize the process, barcode is printed on the debit note and scanned by the barcode reader to replace error-prone keyboard entry
  • Revised debit note design to provide modern view with more details, including the last payment and outstanding transitions, to the end users.
  • Different reports are provided to the accountants for data reconciliation while online access provides an update-to-minute information to the staff in the estate management office for enquiry.
Working Experience
  1. President, IT

    Wealth Management Cube Limited

    • Head of IT Development and PMO
    • Oversee the project management team
    • Setup and maintain the AWS environment
    • Provide technical advice and guidance on system development
    • Work with CEO to implement POC for business development
    • Manage projects to upgrade systems from client/server to web-based architecture
    • Spearhead digital transformation to reduce manual operation by automation
    • Revamp our 10 years old legacy system with micro-services architecture on cloud and UI
  2. Systems Director

    The Knot Asia Pacific

    • Manage our project and technical managers to work with counterparts in the US office
    • Oversee the architectural design of different systems in the US and China projects
    • Discuss regularly with US counterparts on technical issues and propose solutions
    • Provide technical advice to different teams on web, iOS and Android development
    • Establish and manage a mobile teams (both Android and iOS)
  3. Project Manager

    Beans Factory

    • Participate in pre-sales stage to discuss with clients the business needs and offer them the appropriate solutions
    • Monitor project status, scope and resources
    • Provide technical support to the team on system design and implementation
  4. Systems Architect

    Global Information Services

    • Lead a team of over 10 developers and direct report to senior project manager
    • Define and implement standard SDLC with source control system (CVS), proper build process (Apache ANT/XDoclet)
    • Maintain and enhance the existing Java-based web application
    • Rewrite parts of the system with MVC model using Servlet/JSP/JSTL and Struts
  5. Systems Analyst

    SigmaXpert Limited

    • Gather user requirements, design and implement web-based application for membership and activities management
  6. Systems Analyst

    New World Services Holdings Limited

    • Lead a team of 4 developers and direct report to IT manager
    • Gather user requirements, design and implement web-based application for property management company
    • Tenant and property management
    • Accounting system for management fee (including billing, payment collection and adjustment, statement generation and printing as well as reporting)
    • Facilities management (includes booking)
  7. Systems Analyst

    TOM.COM

    • Revamp web user interface to improve usability
    • Redesign system architecture to improve stability of the company portal
    • Work out the plan for server consolidation to better utilize the hardware resources
    • Define programming and system standard
    • Design and implement the web portal applications, including single sign-on, personalization
  8. Systems Analyst

    Chase Manhattan Bank

    • Design and implement CORBA application to load news information from Reuter and provide content search
    • Coordinate with the New York technical team and local line of business to implement company portal for Chase Manhattan Hong Kong using content management system
    • Deploy palm application for executives in Asia Pacific region
  9. Web Application Developer

    Hongkong Telecom

    • Develop middleware for a 3-tier application using C/C++ in Unix platform
    • Use DEC/Encina as the transaction monitor tool
    • Build web-application for billing enquiry
Education
Master of Science in Electronic Commerce
Middlesex University, London
September 2004 - July 2006
B.Sc (Computer Science)
The University of Hong Kong
September 1991 - July 1994
Professional Skills

Artificial Intelligence

  • LLM / SLM
  • RAG
  • ReAct
  • AutoGen / CrewAI
  • MCP

Web Technologies

  • Java
  • Node.js (TypeScript)
  • Python

DevOps Technologies

  • Docker
  • Terraform
  • CI/CD (Jenkins)

Amazon Web Service Technologies

  • CloudFront
  • Amazon EventBridge
  • Elastic Beanstalk/EC2
  • Elastic Container Registry
  • Elastic Load Balancer
  • DynamoDB
  • Lambda
  • Amazon EventBridge
  • RDS (MySQL/SQL Server/PostgreSQL)
  • Route53
  • S3
  • SQS/SNS
  • CodeBuild

Mobile Technologies

  • Android (Java/Kotlin)
  • React Native
  • Flutter
Programming Skills
Java
.NET / C#
Kotlin
Flutter/Dart
Node.js
React
CSS
React Native
Reactive Programming
Functional Programming
Languages
Cantonese
Native
English
Professional
Mandarin
Professional
Toggle to Single Column