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.07 Years)
- 15-May 2023 -Present2 yrs 4.8 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