Shan Xi

Hello, welcome!

廖 善 璽
Shan Xi, Liao

Software Engineer/Developer

About Me

Hello, I am a software engineer with a strong academic and professional background. My Master's thesis revolved around addressing inventory optimization challenges through the development of an algorithm, implemented using Java, which happened to be my initial self-taught programming language. Over the past decade, I have consistently been immersed in the realm of web applications. Throughout this span, I have leveraged a variety of programming languages, such as Java, PHP, and Python, to construct websites.

My expertise extends to various domains, including logistics, international business, warehousing, e-commerce platforms, and promotional marketing platforms. My architectural proficiency encompasses traditional web structures, the segregation of frontend and backend components, and the implementation of distributed microservices, deployed either on virtual machines or cloud platforms.

In my ongoing quest for knowledge and skill enhancement, I am currently delving into the realms of Golang, Docker, and the Google Cloud Platform. It's worth noting that my passion lies in the field of machine learning, and I aspire to incorporate AI technologies into the web sector in the future. For me, programming is not just a profession but a source of endless enjoyment.

Education

Taiwan AI Academy

Received an Honorable Mention for my project, Dec. 2019 - April. 2020

National Dong Hwa University

Graduate Institute of Logistics Management, Sep. 2007 - Feb. 2010

Tamkang University

Department of International Business, Sep. 2002 - Feb. 2006

Certificate

TOEIC

785, tested in April. 2021

Java

Oracle Certified Professional: Java SE 11 Developer

Cloud

AWS Certified Cloud Practitioner

About My Works

Nogle Taiwan Limited

Software Engineer (Java)

May. 2024 - now

Role Description

Collaborated with an international engineering team to develop a new payment gateway product, representing the Taiwan side as a developer.

Project 1. Payment Gateway System

This payment gateway enables merchants to process transactions with customers using a variety of payment methods. It offers flexible integration options, allowing merchants to choose the most suitable approach based on their specific business needs, including merchant-hosted and payment gateway-hosted solutions.

Tech stacks

  • Java 8/11, Spring Boot 2, Hibernate 5, Struts2, MysqlDB, MongoDB, Tomcat, Jenkins, AWS

Store Marais

Senior Java Backend Engineer

Apr. 2023 - Apr. 2024

Role Description

I am accountable for system architecture decision-making, providing programming instruction to colleagues, conducting thorough code reviews, contributing to development efforts, and engaging in real-time online problem-solving. Additionally, I facilitate requirement discussions and oversee the development schedule.

Project 1. New E-commerce (EC) Backend Core System

This system serves as the organization's central nervous system, skillfully consolidating all company data. It seamlessly integrates with a range of other subsystems, including point of sale (POS), the Core Platform Administration Panel, and various other essential components. The system excels in a myriad of pivotal functions, encompassing inventory management, the optimization of purchase workflows, the orchestration of product deliveries, the meticulous oversight of warehouse operations, and the adept management of e-commerce shop order processing. Furthermore, it boasts a robust capability for comprehensive marketing data analysis.

Key contributions

  • The seamless transition of the legacy system from Java 8 to the latest Java 17, along with an upgrade from Spring Boot 2 to the advanced Spring Boot 3. This intricate migration process was orchestrated to harness the most current technological advancements, ensuring system resilience and performance.
  • A holistic embrace of ORM Hibernate, coupled with a precise integration of Hibernate's second-level cache with a Redis cluster. This sophisticated combination not only fine-tuned our data access capabilities but also spearheaded a substantial enhancement in query efficiency. The result is a highly responsive and scalable system architecture that facilitates seamless operations in the E-commerce domain.
  • I have leveraged the capabilities of Spring WebFlux, WebSocket, and Reactive Kafka to develop a server-side event push mechanism. This implementation excels in delivering real-time, non-blocking, and exceptionally high-performance streaming. It particularly excels in high-concurrency scenarios, ensuring the system's robust operation even under demanding conditions.
  • Facilitating the seamless integration of the OpenAPI Swagger framework, thereby greatly streamlining the development workflow. This integration has fostered efficient and coherent communication between the backend and frontend components, contributing to a more streamlined and productive development process.
  • Using Spring Webflux and Reactive Kafka to build an SSE (Server-Sent Events) notification service. Leveraging the non-blocking capabilities of Netty allows the system to achieve high-concurrency, high-throughput, and low-latency.
  • I have architected and developed over 100 APIs, establishing a comprehensive and versatile suite of services within the New E-commerce (EC) Backend Core System.

Tech stacks

  • Java 17, Spring Boot 3, Spring Framework 6, String Webflux, Hibernate 6, Redis Cluster, MysqlDB, MongoDB, Kakfa Cluster, Reactive Kafka, Tomcat, Websocket, SSE, Open API Swagger 3, Quartz, Jenkins.

Project 2. Brand Representation Website: Bloomingville

Our project entails the creation of a brand-specific website for "Bloomingville." This brand website is seamlessly integrated into our main website, and you can access it via the following link: https://www.storemarais.com/bloomingville.

Key contributions

  • I orchestrated the design of the data flow, optimizing data retrieval for enhanced efficiency and rationality.
  • I leveraged Redis caching to support comprehensive data computations, ensuring swift and reliable access to vital information.

Tech stacks

  • Java 8, Redis Cluster, MysqlDB, MongoDB, Play Framework 1, Jenkins.

Project 3. Backend Development for Festive Events Website: 618 Shopping Day

Our endeavor involves the creation of a dedicated website to bolster the promotion of our E-commerce shop. Visitors to this platform can avail a multitude of coupons, engage in interactive activities, and stand a chance to receive enticing gifts. In essence, this project serves as a dynamic marketing promotion initiative.

Key contributions

  • Employing the Notion database API for efficient data management, ensuring seamless integration and presentation of content on the website.
  • Implementing Redis caching to optimize performance and minimize the frequency of connections to the Notion database, resulting in a highly responsive and efficient system.

Tech stacks

  • Java 8, Redis Cluster, MysqlDB, MongoDB, Play Framework 1, Notion Database API.

Cathay Financial Holdings Co., Ltd.

Software Engineer (Java & Python)

Sep. 2018 - Jun. 2022

Role Description

My role extends beyond web development and encompasses a diverse set of responsibilities. Problem-solving is a skill that I consistently apply, and as a result, a substantial portion of my time is dedicated to fostering effective communication among diverse departments and development teams.

Project 1. MyRewards Administration Platform (CMS)

This platform serves as a comprehensive content management hub for the MyRewards App, facilitating seamless data exchange between various systems. Its exceptional strength lies in an asynchronous distributed queue mechanism, ensuring adaptability and eliminating timeout issues during lengthy tasks. Furthermore, it enables real-time client-server communication via websockets without requiring page refreshes. With its highly versatile authorization system, this platform adeptly accommodates a wide array of permission use cases. A key highlight is the entirely dynamic scheduled job design, allowing runtime adjustments to job statuses. This platform boasts an elegant simplicity in its design, yet its capabilities are undeniably potent and far-reaching.

1 / 9
CMS: show data in listview from database
2 / 9
CMS: show a data detail view from database
3 / 9
CMS: platform function menu setting
4 / 9
CMS: scheduled task setting
5 / 9
CMS: async queue process results
6 / 9
CMS: celery monitor view
7 / 9
CMS: show a data editor view
8 / 9
CMS: queue usage and websockets notification
9 / 9
CMS: progress bar using queue and websockets
❮ ❯

Key contributions

  • Single-handedly orchestrating the end-to-end process of planning, designing, developing, testing, deploying, and maintaining the project.
  • Implementing multi-threading through Gunicorn.
  • Employing an asynchronous distributed message queue powered by Celery.
  • Enabling server-side message delivery to clients via WebSockets.
  • Introducing a flexible account settings system founded on a role-based authorization design concept.
  • Implementing a dynamic and robust project structure using Flask.
  • Establishing a unified data audit flow module via Flask signals.
  • Ensuring ease of maintenance through the utilization of a Jinja template system.

Tech stacks

  • Python3, Flask, Sqlalchemy, Javascript ES6, JQuery3, Bootstrap4, CSS, HTML, Git, Celery, PostgreSQL, AWS EC2, Azure Devops CI/CD, Heroku, Websockets, Selenium, Linux redhat, docker

Project 2. MyRewards Backend APIs

The MyRewards project encompasses frontend development for Android, iOS, and the web, while the backend supplies the essential APIs to support these platforms. My primary contributions revolve around the creation of E-invoice APIs and Push notification APIs, which play a pivotal role in enhancing the project's functionality and user experience.

1 / 1
Backend APIs Swagger: Push Notification APIs
2 / 2
Backend APIs Swagger: E-invoice APIs
❮ ❯

Key contributions

  • Developing E-invoice APIs for the app, enabling users to effortlessly query e-invoices and register their mobile devices.
  • Creating push notification APIs for the app, allowing users to access and manage the push message list.
  • Establishing a robust push notification backend system, empowering the marketing department to execute event promotions through message pushes.
  • Implementing a dynamic scheduling system using the Spring Framework, ensuring seamless and efficient scheduling of various tasks within the project.

Tech stacks

  • Java, Spring Framework, Spring boot, Spring Cloud, Hibernate, Git, Azure DevOps CI/CD, Maven, Oracle, Redis, Apache, OpenShift, Junit, postman

Project 3. Auto Tagging POC

The core objective of this project is automated tagging based on customers' consumption details. It constitutes a challenging Natural Language Processing (NLP) classification problem. To address this, I successfully implemented an auto-tagging solution leveraging a deep learning model - Bidirectional LSTM. This model, along with all its intricate details, is encapsulated within a Kivy-based graphical user interface (GUI). The GUI not only enables model prediction but also facilitates model training. In an effort to enhance accuracy and establish a balanced dataset, I conducted extensive web scraping to acquire additional data from various other websites.

1 / 4
Auto-tagging: Single Prediction
2 / 4
Auto-tagging: Batch Prediction
3 / 4
Auto-tagging: Model Training
4 / 4
Auto-tagging: Deep Learning Training Process
❮ ❯

Key contributions

  • Empowering the automatic classification of customers' information into distinct groups through the training of machine learning models.
  • The development of a user-friendly desktop application, enabling users to predict labels and train models seamlessly.
  • Integration of the Keras model core into the system to facilitate recommendations.
  • The project leverages a range of advanced technologies and tools, including TensorFlow, Keras, Python, Kivy, as well as LSTM and NLP techniques, in the domain of deep learning.

Tech stacks

  • Tensorflow, Keras, Python, Kivy, LSTM, NLP, Deep Learning

Project 4. CMS Desktop Apps Version

This is a versatile cross-platform desktop application that delivers comprehensive Content Management System (CMS) services through a powerful backend API.

1 / 2
CMS Desktop App: Download Push Message Status
2 / 2
CMS Desktop App: File Chooser
❮ ❯

Key contributions

  • Introducing an innovative approach to content management within the application.
  • Developing a headless CMS solution, harnessing the potential of backend APIs for seamless and flexible content management.

Tech stack

  • Java, Swing

Project 5. Machine Learning Lecturer

In the project titled "Machine Learning Lecturer," I crafted a fundamental introduction to machine learning. The contents encompass classical machine learning (ML), deep learning (DL), and are enriched with numerous illustrative coding examples.

ML / DL Tutorial Link

Key contributions

  • My significant contribution involved educating my colleagues on the fundamental principles of Machine Learning (ML) and Deep Learning (DL) and imparting practical coding skills in these domains.

udnfunlife Co., Ltd.

Software Engineer (Java)

Mar. 2017 - May. 2018

Project 1. uDesign Online Shop

uDesign Online Shop is a specialized e-commerce platform designed to showcase and promote the unique creations of talented designers in the field of telnet products.

Key contributions

  • Enhancing the performance of both frontend and backend programs.
  • Crafting a cross-border sales module to facilitate international commerce.
  • Establishing seamless data exchange with external systems.
  • Developing a dedicated web page for membership recruitment.
  • Creating comprehensive business logic documentation and coding guidelines.
  • Pioneering the development of a cutting-edge administration website for the next generation.

Tech stacks

  • Spring2.x/4.x, Spring MVC, Struts1.x, iBatis/Mybatis, Java, Servlet/JSP, Oracle/MySql, JS, CSS, HTML, JBoss, SVN, git

UITOX Co., Ltd.

Backend Developer (PHP)

Apr. 2014 - Sep. 2016

Project 1. Warehouse/Logistics System

The Warehouse/Logistics system is the primary kernel of our e-commerce platform. Suppliers' stocks and product logistics are managed by this system.

Key contributions

  • Maintain, develop and test stock process modules including inbound, outbound and data exchange with logistics providers.
  • Maintain, develop and test backend APIs.
  • Improve the job execution time of the inventory replenishment module from several hours to half an hour.

Tech stacks

  • PHP5, Oracle SQL, Git, CodeIgniter.

Project 2. Supplier administration website

This website is for suppliers to manage their stocks and products.

Key contributions

  • Develop inventory related functions on websites for vendors to control their stock status.
  • Develop APIs for suppliers' systems to exchange data.

Tech stacks

  • PHP5, MySQL, JS, HTML, Git, CodeIgniter.

Evergreen International Corp.

Software Engineer(Java)

Sep. 2010 - Sep. 2013

Project 1. Global Logistics System

A system used to manage the whole flow of international business.

Key contributions

  • Develop new functions and modules such as booking, document, vessel routing and data exchange subsystems.
  • Develop reports programs with PDF and XLS format.
  • Develop various scheduled jobs.
  • Study the potential side effects of upgrading libraries such as POI, JFreeChart.

Tech stacks

  • Java, Servlet/JSP, JS, HTML, Oracle SQL, PL/SQL, Tomcat, JBoss

Project 2. Terminals Operating System

A system used to manage container status at the terminal.

Key contributions

  • Develop and test system functions.
  • Develop and test various statistical reports.

Tech stacks

  • Java, iReport, Spring Framework, Hibernate, Struts, JS, HTML, Oracle SQL, Tomcat, JBoss

Project 3. Evergreen Logistics Corp. Official Website.

Key contributions

  • Maintain the web page.
  • Improve the performance by modifying the db connection pool mechanism.

Tech stacks

  • Java, JS, HTML, Oracle SQL, Tomcat, JBoss

© 2022 Shan Xi. All rights reserved.