Resume of Allen (Tik Lun) Yip
Seasoned Software Engineer worked on different large projects for 10 years.
Proficient in Java and Python to solve business problems automatically, with Frontend, Backend or Cloud Service.
Also using different tools to improve team’s productivity, with different CI/CD pipelines.
Working History
| Year | Title | Company |
|---|---|---|
| Oct 2015 - Sep 2017 | Software Engineer | iAsia Online System Limited (Hong Kong) |
| Sep 2017 - Mar 2024 | Software Engineer | HGC Global Communications Limited |
> Software Engineer
In HGC, I had these achievements as a software engineer.
- Improve legacy backend response time by 22%
- Rewriting Java monolith into Python Flask
- Redesign into microservice containers based to serve different business functions
- Focused on providing REST API, such that frontend dev can integrate with ease and to be more user- and dev- friend
- Focus on proper designs with performance in mind
- Using best practice of MySQL or MariaDB, including:
- Proper type of MySQL indices for read intensive
- Using proper JOIN for minimizing storage spaces
- Analyzing slow query to troubleshooting performance issues
- Improved existing SQL query time by 30% using these practices
- For PoC projects, MongoDB is used for faster development time
- In iAsia, improved part of the Java stock trading system by 18% using Eclipse debugging
- Using best practice of MySQL or MariaDB, including:
- Co-authoring frontend using Liferay with Java
- Proving a stable and mature platform for both internal and client facing
- Also using vanilla HTML/CSS/JS for frontend
- Automate manual routine of SOC operators, saving human and time cost for the company
- SOC (Security operations center) in HGC
- Web Scraping vulnerabilities of vendors, without them monitor and extract hundreds of webpages manually
- Using Python Scrapy, Selenium and Pupperteer
- Data Analysis
- Using Pandas and Numpy to analyse the vendors vulnerabilities and generate report
> DevOps / System Engineer
In HGC, I also acted as a DevOps in my team, achieving:
- Piloting the usage of GitLab CI and Jenkins
- A very significant reduction in testing time and efforts
- Fully automated unit tests, and generate JUnit report for visibility
- So for development, devs can have the binary built early on and thus testing on different enviornments
- Overseeing and perform data migration of systems
- e.g. From Windows to CentOS Linux and vice versa
- Setup and maintain web servers and services
- e.g. Apache, Nginx, Liferay and Grafana
- Grafana enabling metrics visible to internal devs and a customer version
- Using cloud platform for solving business requirements
- To reuse existing solutions, allowing faster time to market
- e.g. Jira cloud for inventory management and ticketing system for customer
- Including AWS service
- This CV is hosted at a S3 bucket with CloudFront as cdn/https termination!
> Highlight Projects
Liferay Portal
In HGC, I co-author the usage of Liferay as a portal for both internal SOC operators and external customers.
The portal is an important tool for SOC, since it summarized all information they needed for daily operations, such as what active alerts right now. And such alerts are filtered, grouped and ranked, which allows they focus on the hottest issues.
While for the customer, it provides observability of what potential security issues they are having, and histories of any issue for auditing.
Technically, the backend are rewritten in microservices, which separate code and resources for different business function, like getting alert, aggregation and filter are all microservices.
Rule Engine, a in-house cybersecurity tool
One major part related to Liferay Portal is called Rule Engine. It handles everything related to alerts.
It contains most of the business logic, since it decides when the notifications should be escalated or dropped, who should it escalated to.
Think of it like a AWS EventBridge, when some sources have alert triggered (e.g. Email), it would have a schema that governs the output.
Since the business requirements are often changing for different alerts, the design of it must be flexible.
To provide flexibility, MySQL is used to handle action (or “rule”) of each alerts, which allow changing easily with changing the underlying Java code.
> Education
| Year | Degree | School |
|---|---|---|
| 2012 - 2015 | Bachelor of Science in Electronic and Computer Engineering | The Open University of Hong Kong |
Contact
-
Phone: +1 (236) 978-5058
-
Address: Vancouver, BC V5S 1A6
-
Email: tiklunhk2002@gmail.com