I'm a backend software engineer currently working at Coles Group, Melbourne, Australia🇦🇺. I'm interested in high-available micro-service development, distributed systems, data structures, and algorithms. More skills I have include Java, Python, Terraform, Spring Frameworks, DevOps Automation, Redis, MySQL, Message Queue, Azure, Docker, K8s, etc.
I'm passionate about working with talented people, and happy to embrace challenges and cutting-edge technologies.View Resume
A teamwork project which developed micro-services that provides Coles websites and apps with internal APIs to query product information.
It is a facade service that integrates multiple domains while millions of requests would be handled per day. Therefore, we implemented virtual threads using Java 19 to parallel the downstream calls to improve the response speed.
It was enjoyable to learn about virtual threads on the fly, and it gave me a sense of fulfillment by taking charge of infrastructure establishment for the first time😋.
Key Skills: Java 19, Virtual Threads, SpringBoot, Redis, Terraform, Azure Pipelines, Docker, K8s, etc.
A teamwork micro-service project to process Coels gift card sales transactions. The services receive transactions from third-party vendors and save the data to a SQL database and a NonSQL database respectively after enrichment.
The project was implemented in a reactive style using Spring Webflux to improve the performance when TPS is high, and a simple front page was also developed using NextJS to monitor the transactions.
This project brought me to many new technologies I never used before😱, including Spring Webflux, stream/reactive programming, and infrastructure as code using Terraform. But I'm proud to say that I achieved good productivity and quality of work😝🥳.
Key Skills: Java, Terraform, Spring Webflux, Service Bus (Message Queue), CosmosDB, NextJS, k8s, etc.
This is my Minor Thesis project which has been published on 2022 Australian Database Conference. The project designed and developed a routing algorithm that can find the most fuel-saving route between destinations.
Multiple academic experiments were designed and conducted by establishing a graph based on real-world road data. The result shows that the proposed algorithm can save up to 35% fuel consumption on a trip.
This experience significantly improved my research and problem-solving skills; moreover, it provided me with insights into how to use data structure and algorithms to solve practical problems😎.
Key Skills: C++, Data Structure and Algorithms, Academic Research, Eco-routing, Mobility Profile.
This project is where my journey truly began! After my master's learning, I realized that the school projects were far from enough to be a real proficient software engineer, so I started this project to learn advanced technologies and get my hands dirty🙇♂️.
This project developed a demo crazy sale system where customers buy products that has a time-limit promotion. It tries to maximize the system's concurrency capability to handle huge amounts of requests per second while the tread safety is ensured.
The technologies used include Redis Sentinal for high availability, MySQL and Sharding JDBC for improvement of database capacity, ZooKeeper as a registering center, Redis Distributed Lock for thread safety, Rabbit MQ for fault tolerance, and a Bloom Filter to prevent malicious requests.
The JMeter test shows that the system can handle around 5000 tps when running on a single machine.
Key Skills: SpringBoot, Spring Cloud, ZooKeeper, MySQL, Redis, Distributed Lock, Redis Sentinel, Sharding-JDBC, Distributed System, etc.