Self Introduction
About Me

As a Programmer
Having 6 years of experience in IT industry, I am currently a full-stack Software Engineer with 2 years of experience as a Cloud Engineer.
I am also an active Vibe Coder for frontend applications (half of the code in this personal page is vibed).
For Frontend I specialize in React and React-Native for web and mobile applications.
For Backend I specialize in Spring Boot and Nestjs, with intensive use of ORM and SQL when only necessary. I enjoy solving business problems with object-oriented domain model, especially with:
- The tactical methodology advocated in DDD;
 - The strategic design using Event Storming; and
 - The context-first approach to schema design.
 
For Cloud, I am proficient in designing cloud solution and maintaining them with infrastructure as code using Terraform.
Education
03/2019 - 06/2019
MicroMaster in A.I. and ProgrammingTecky Academy, Hong Kong09/2012 - 08/2014
M.Phil. in MathematicsThe Hong Kong University of Science and Technology, Hong Kong09/2009 - 06/2012
B.Sc. in Mathematics (First Class Honor)The Hong Kong University of Science and Technology, Hong Kong
Experience (IT Related: 6.12 Years)
- 15-May 2023 -Present2 yrs 5.6 mosSoftware EngineerWonderbricks LimitedJob Summary.
- Worked on Mobile Application and App Submission
 - Worked on Devops and Cloud Infrastructure with Infrastructure as Code
 - Worked on Backend Development in multiple languages for different usecases
 - Developed various CICD pipelines for backend and frontend projects
 
 - 15 Aug 2022 -April 20238.4 MonthsAI EngineerEye Catching LimitedJob Summary.
- Study eye-tracing related algorithm.
 - Study and deploy machine leanring algorihtm in web-app and desktop-app.
 - Completely translate a BlazeFace model in python into the same model in libtorch of C++ for GUI application.
 - Implement methods to ensure weights in pytorch model can be used in libtorch model.
 - Study CMake and develop software to combine libtorch model and imgui application.
 
Skills NeededPython|───PyTorchTypescript|───Tensorflow|───Onnx - Sep 2021 -July 202210.9 MonthsSenior Software DeveloperRaSpect Intelligence Inspection LimitedJob Summary.
-  Object Detection Related.
- Text Detection. Implemented text detection (EAST) to facilitate signboard defect classification.
 - Crack Detection. Help implement detection model for crack and spalling.
 - Rust Detection. Implemented two solutions: (i) Text removal -> classifcation pipeline; and (ii) direct object detection model using faster rcnn.
 
 -  Image Generation/Inpainting.
- DefectGAN. Implemented image-generation model following this paper that generate synthetic data on cracks and spallings for training defect detection models on facades.
 - Text Removal. Experimented with existing algorithms like various GAN or image-inpainting method in pytorch. Finally I follow this paper to obtain a text eraser with satisfactory performance. 
For an example of failed model, we refer the results to here. 
 -  Web or Hardware Related.
- Maintain React Next project.
 - Data scrapping for house transactions records.
 - Automation on tracking latest rtk-data from official geodetic website and data-processing pipeline.
 - Work with a local grpc based service in Python to interact with a compiled binary (.exe), messed with multi-threading stuff.
 
 
Skills NeededPython|───Selenium|───Boto3 (AWS SDK)|───Mongoengine|───gRPC|───PyTorchData Annotation Tool|───CVAT|───COCO-AnnotatorAI-General|───Data Annotation|───DataLoader with Various Data Augmentations|───Model Training for Rust Detection|───Model Training for Crack DetectionAI-Models|───GAN for Producing Synthetic Data|───Faster RCNN from Scratch and its Modification|───Single Stage Headless Face Detector into Rust DetectorJavascript (Legacy Project)|───Next -  Object Detection Related.
 - Aug 2020 -Mid-Aug 20211 yr 0.4 mosSoftware EngineerEAB Systems (Hong Kong) LimitedJob Summary.
- Build video conferencing frontend and backend application in React, Twilio and express.
 - Build CMS system that lets users create their own single page application.
 - Machine Learning Related. Build CSV Importer (together with an express layer and a Flask layer) that can parse a csv/excel file and perform: Data Classification and Auto Date-refomatting are separately two models placed inside tensorflow-serving for deployment.
 
Skills NeededTypescript|───React|───Redux|───React-Native|───Express|───Mongoose|───Sendgrid|───TwilioNetworking|───socket.ioPython|───Pandas|───Tensorflow v2 Sep 2019 - Aug 2020
11.9 MonthsFront-end DevelopereLearningProJob Summary.- Create HTML5 Coursewares
 - Maintain web pages and construct React frontend application
 - Created a python GUI project for text extraction from an image (a work necessary to translate old fresh game into html5 game).
Steps for the App:
- Press Screenshot button in our app (image of preselected monitor will be recorded)
 - Select the area for text extraction
 - Text will be captured by calling google vision API
 
Detail can be found here.
 
Skills NeededJavascript|───ReactPython|───tkinter|───pyinstallerArt|───Adobe Premiere|───Adobe Photoshop|───Saola Animate (CSS Animation)Jan 2018 - Dec 2018
11 Months2D Game Artist深圳疯点子科技有限公司Job Summary.Responsible for constructing 3d accessories, creating environment art and character design.Game that I worked on: LinkSkills NeededSoftware|───Unity|───Autodesk 3ds Max|───Adobe PhotoshopArtistic Skills|───2D Character Design|───UI Assets Design|───Low-poly 3D Model ConstructionOct 2015 to Dec 2017
UnemployedSkills NeededThick SkinSelf-DisciplineParental SupportI was striving to become an artist within two years. Of this time I was taking online courses and drawing on a daily basis. I aimed at being able to draw a variety of game assets (not just character).
My outcome based on this period can be seen here.Mar 2015 - Oct 2015
6.9 MonthsSenior Research AssistantDepartment of Mathematics, Hong Kong Baptist UniversityStudy HJB equations arised in specific financial games.Sep 2014 - Feb 2015
6 MonthsResearch AssistantDepartment of Mathematics, Hong Kong University of Science and TechnologyStudy the property of viscosity solution of HJB equations.Sep 2012 - June 2014
1 yr 9.8 mosTeaching AssistantDepartment of Mathematics, Hong Kong University of Science and TechnologyFulfill teaching duty as required in obtaining studentship in the course of M.Phil study. Subjects include:- Calculus II
 - Linear Algebra
 - Mathematical Analysis
 - Real Analysis
 
Teaching Material: Link
Programming Skills
- Git
 
- Docker
 - Basic CI/CD Pipeline in Gitlab
 - Github Actions
 
- Terraform
 
- Security Group
 - Target Group
 - Load Balancer
 - ECS Fargate
 - Route53
 - S3
 - CloudFront
 - Lambda Functions
 - API-Gateway
 - API-Gateway with Websocket API
 - RDS
 - RDS-Proxy
 - IAM Policies
 - SQS
 
- React
 - React-Native
 - Redux
 - Redux-Saga
 - Next.js
 - Electron.js
 - Electron with Next.js
 - Node.js
 - Express.js
 - Socket.io
 - Twilio.js
 - Knex.js
 - Mongoose.js
 - Prisma.js
 - Prisma-Kysely.js
 
- Spring Boot
 - Coroutines
 - SSE
 - Domain Driven Design
 - JOOQ
 
- Spring Boot
 - Hibernate
 - iBatis
 
- Windows Presentation Foundation
 
- CMake Ecosystem
 - Libtorch
 - OpenCV
 - ImGui for Desktop App
 
- Gin
 - Goose
 - Sqlc
 - Azure-sdk for Voice
 - Go-Jet
 
- Tensorflow v2
 - PyTorch
 - Pandas
 - Flask
 - ONNX
 - Openpyxl
 - Boto3
 
- Elliptic Curve Digital Signature Algorithm, Code Implementation
 
- Debezium (Kafka)
 
- RabbitMQ
 
- PostgreSQL
 - MongoDB
 
- Embed custom trained pytorch model in ONNX format into frontend
 - Implementation from scratch and training experience with CNN such as
- Object Detection
 - Text Detection with Rotation
 - Image Classification
 - Image Generation and Image In-painting
 
 - Implementation and training experience with LSTM Model and Transformer to do:
- Summarization on a column of data
 - Translation of random date format into standard YYYY-MM-DD one
 
 
Art Skills
- Photoshop CC
 - 3DS Max
 
- 2D Character
 - 2D Environment