M2eihd8duggfj85biwpc

劉語斌(Ben)

Senior Engineer and Game Architect

I am passionate about exploring new technologies and architectures
,and I tackle challenges with enthusiasm. 

Currently, I am looking for experienced C# and Golang developers to join my team.

目前職稱
城市,TW
[email protected]

skills:

Programming Languages: C#,Java,Golang, javascript,html,css
Frameworks: Spring Boot, Gin, Vue3 
Databases: MySQL, Mariadb 
NoSql:reids,mongodb,Hbase 
Cloud Computing: AWS, 
Microservices: Kubernetes, Docker 
Version Control: Git, Flyway(DB Version Control) 
CI/CD: GitLab, Jenkins 
Log:ELK ,AWS S3+ Athena
Message Queue: RabbitMQ,Kafka 
Other: RESTful APIs, Websocket ,Grpc, Linux commad



 Career Experience: 
- I have 4 years of experience in software backend development, use Java and C# programming languages - designed a distributed system for C10K (10,000 concurrent connections) web application system. 

- have front-end experience using the Vue3 framework to develop a CMS system

 Refactoring Development Experience: 

reviously, the company I worked for developed a master-slave system for a real-time communication game using Node.js. which caused severe delays when the number of player connections reached around 10,000 and no improvement was possible despite upgrading specifications. 

 The main reason was that the game logic depended only on a single service. Through my design and refactoring, I converted the architecture from master-slave to distributed, allowing the calculation logic to be distributed to dozens of service entities 

 The benefits of the improvement are as follows: 

 1.Load balancing can be achieved to avoid over-reliance on a single node.

 2.The number of game players can be increased to 10 times under the existing machine architecture, with an estimated maximum limit of 150,000 people online simultaneously. 

3.The system is built with microservices, where each service performs a specific function and can be easily scaled based on its needs.

Recent Work Experience In two companies:
 Senior Backend Software Engineer,Inno Technology (伊諾科技):
2022/8~now

 As a backend software engineer, my primary responsibility was to optimize system performance, improve slow queries and enhance system I/O concurrency by utilizing Redis and DB effectively. 

Drawing on my extensive experience in the payment industry, I developed, and maintained payment system architecture. 

 My contributions include: 

 ⚫ Improved the Redis data structure design for certain functions, ensuring that only necessary data was retrieved during each query, thus optimizing the performance bottleneck of tracking the number of users online.

 ⚫ Utilized theunique index to eliminate duplicate data for statistical purposes, reducing the size of the database table to only 1/60th of its original size. 

⚫ Designed the unique index for transactional data, making the DB the final line of defense against duplicate payouts or deductions in case of logic errors in the AP. Technologies used: Spring Boot, MyBatis, Redis, Kafka, and MongoDB.


Senior Engineer and Game Architect,
2021/4~2022/7
 Responsible for developing Game server and CMS system, the only backend engineer and architect in the team, mainly responsible for backend development and design
, as well as backend/frontend development for the CMS system (Vue3).

⚫ Developed a total of 6 games, poker and electronic games during the employment period. In addition to main development work, also developed and maintained a shared library for the entire backend, occasionally performed cross-team code reviews, and provided suggestions to improve the performance of other team products.

 ⚫ The company's original backend logs were written into the Product's database, and the Game server logs were written into files and periodically uploaded to AWS S3. Based on my experience, I actively discussed and recommended using AWS Athena with the operations team
, which resulted in the following improvements: 

 - The company's database-related costs decreased by 95%.
- No need to consume resources from other departments when searching for logs. 
- Due to the structured nature of the logs, issues can be tracked faster and more accurately. 

 ⚫ While actively helping with code reviews for other teams, I discovered a lack of locking concept in the company's wallet design, which resulted in over-deductions during high concurrency. I proposed optimistic and pessimistic locking solutions to address this issue. 

 ⚫ Initially, we used Redis to do lightweight message proxy services for our project, but I proactively introduced RabbitMQ to replace Redis, as RabbitMQ can ensure message delivery. 



Side project:
Github:https://github.com/b5501123/Stock.Demo
Stock.Demo

As I have a strong interest in stocks, I wanted to create a real-time notification system for myself to stay on top of the latest news and analyze meaningful data as a reference for buying points. 

 This project was developed using .net6 and integrated with Redis and MySQL for data processing. I used a Telegram bot for notifications and AWS's free EC2 and RDS MySQL services.

 Features:
1.Revenue crawler and analysis: Analyzes companies with a monthly/yearly growth rate exceeding 100%.

 2.Stock news crawler and analysis: Scans publicly available information to find announcements related to earnings and dividends.

 3.Daily stock closing price crawler and analysis: Identifies stocks that have jumped or have seen an increase in trading volume. 

4.Daily institutional investor crawler and analysis: Identifies stocks with continued foreign and institutional investor buying. 

5.Earnings stock notifications: Analyzes EPS and P/E ratios to identify whether there is a premium.

 6.Real-time stock limit-up reports and rapid rise notifications.