Yu Wei Chan

The senior software engineer who have plenty experience in game industry, My features :

  • Adept at Micro Services with Service Mesh, Distributed Transaction skills.
  • Adept at structure of multiple k8s clusters, including monitoring, IaC, GitOps.
  • Using design pattern. Writing code with high scalability and flexibility.
  • Plenty working experience in different engineering positions including backend, full-stack, DevOps and Game Server.

Working Experience

DevOps Engineer

HWAO tech  •  Dec 2020 — Now

Game industry, product is rental game platform deployed on hundred GCP projects of each business partner.

  • Introduced Terraform on my own. Reduced 90% time spending of OP creating a new project which includes SQL, k8s, LB, NAT, Firewall etc. Now just need “one button”.
  • Introduced k8s on my own. Reduced 70% cost of VM. Figured out issues between RD and OP more easily. 
    • Deployed Rancher to manage RBAC access to visit cluster for RD and OP team.
    • Monitoring with Prometheus, Alert Manager and Grafana. Charts including CPU/MEM of nodes, RPS, latency, PV ratio etc. And fires alert to Mattermost .
    • Deployed Harbor (Container Registry) and Gitlab Runner and make a CI/CD flow template for RD team.
    • Deployed open-source applications e.g. Gitlab, ELK, APM, Sentry, argoCD, Rancher ... etc by Helm and use Traefik (API Gateway) to manage white list of admin page.
    • Developed GitOps by kustomize
    • Used HPA and Auto-scale Node to make cluster scalable.
    • Used CertManager to manage SSL.
  • Developed several applications in Golang. e.g. 
    • Domain admin system for managing hundred Godaddy account, including health check, SSL expired checking.
    • Springboard system for avoiding domain be blocked.
  • VM related
    • Deployed and maintain playbook of Ansible.
    • Collect logs by fluentd of Stack Driver.

Software Engineer

Silkrode tech (思華科技)  in Taipei City •  Feb 2020 – Nov 2020

FinTech industry, products are related to auto transaction. I was in GoLang team which includes around 30 gophers. In order to resolve issues caused by too many maintainers in a monolithic project. We introduced MicroServices and design excellent structure together. Because of good expression of DevOps, so that was invited and seconded to DevOps team for 2 months.

  • Developing MicroServices project in Golang.
    • Developed a throttling pattern which locks http request and waits queued jobs finished in MicroServices then response. The RPS line became smooth in high concurrency via stress test.
    • Developed an orchestrator service implementing Saga-Pattern. In order to do transaction cross MicroServices.
    • Caught trace id from Envoy and logging as a chain in MicroServices. It makes RD figure out runtime issues more immediately.
    • Developed service in golang with 
      • error tracking, integrated error code between gRPC and http
      • design patter including DI, singleton, abstract factory make structure flexible.
  • As a team SRE in MicroServices project
    • Responsible for introducing Istio (Service Mesh)
      • Integrates Jaeger to observe distributed tracing.
      • Resolves issue that gRPC can't be LB via kube-proxy.
      • Developed envoy filter in Lua. Used for access logging and forward-auth.
    • Developed Infra by kustomize, and took over to DevOps team.
    • Wrote Blue/Green deployment bash which can switches services at the same time, and integrated to Jenkins DSL taking over to OP team.

Backend Engineer

桔子數位 in Taichung City  •  March 2019 – Oct 2019 (Went out of business)

Gaming industry. Company belong to agent side having custom service.
My responsibility is maintain and refactor a discount system, which is according player bet and store value in game, we’ll give player mapping rewards during discount event like moon festival etc .

  • Management
    • Manage small team. Members up to 5 people. Including UI and front-end. We often had meeting with custom service and implement their requirement.
  • Refactoring
    • Refactor from PHP to Golang
    • Integrated multiple discount sites into one by using abstract design patterns. The system could scale more easily after refactoring.

Full-stack Engineer

RACETEQ s.r.o. in Ostrava, Czech Republic  •  Nov 2018 – Jan 2019 (Short term Contract)

Electronic retail industry. I was dispatched to the Czech Republic to be responsible for the - iphone repair department's invoicing system project, communicate and collaborate with local staff in English

  • Developed company’s internal purchase, sales and inventory systems, including item inventory and financial records and statistical reports.
  • Integration with system financial and inventory modules

Game Server Engineer

ifalo tech (愛法諾科技). in Taichung  •  Aug 2016 – Oct 2018 

Game industry, belongs to game party.

  • Developed RESTful APIs in PHP, APIs are used by multiple game platforms (Business partner) 
    • Functions such as: game login, credit response, cash transfer, limit the amount of winning and losing, etc.
  • Developed Slot game in JAVA
    • Developed multiple slot games based on a framework, each game have own characteristics Bonus Game (such as Hamster, treasure bowl)
    • Developed game functions controlled by the admin site, such as: controlling the results of the game, players gradually winning, kicking out online players, etc.
    • Cooperated with the H5 front-end team via Websocket.
    • Developed SQL store procedure to handle complex DML in efficient way. 

Full-stack Engineer

維聖資訊 in Taichung  •  Sep 2015 – Mar 2016 

Digital learning industry.

  • Developed moodle in PHP, compose complex DML which can withstand 10,000 concurrent traffic.

Highlight skills

Programming


  • crontab, command design
  • B2B/ B2C API
  • Concurrency communication
  • Parallelism security
  • Design pattern 
    • Abstract factory
    • Singleton
    • Dependency Injection
  • JWT, OAuth, RBAC
  • protobuf, gRPC, websocket, graphQL
  • vuex, vue-router

Kubernetes


  • Service: NodePort, ExternalName usage
  • Pod: Probes health check, PV mounting, HPA scale
  • Secret/ConfigMap mounting
  • CertManager
  • API gateway: Traefik, IstioIngress
  • RBAC management
  • Rancher, ArgoCD
  • Kustomize, Helm

Microservices


  • Istio service mesh
  • L7 LB, traffic management
  • Timeout, Circuit Breaking, Throttling for avoiding avalanche effect
  • Envoy filter (middleware of service)
  • Blue/Green deploy
  • Jaeger tracking
  • Distributed Logging

Databases


  • MySQL configuration, slow query and deadlock discovery
  • Big table Partition, index improvement
  • Iterator in Store Procedure
  • Event Scheduling
  • laravel migration / golang-goose
  • Redis Cache, rate limit 
  • Observe QPS, connection count
  • master slave structure

Tools


  • UML Sequence Diagram, DFD, ERD with mermaid
  • markdown
  • makefile
  • docker , docker-compose
  • bash
  • Lua
  • Terraform
  • Serverless
  • Prometheus, Grafana, Alert Manager

CI/CD


  • Unit, integrated, linting testing 
  • Build and push to Harbor | GCR
  • Deploy to k8s via kubeconfig 
  • Multi-stage build Dockerfile
  • Jenkins DSL
  • Gitlab CI, runner deployment

PaaS/SaaS


  • AWS:EC2, S3, RDS
  • GCP: GKE, GCR, CloudSQL, Redis, DNS, VPC, LB, CloudRun, PubSub, Cloud Function, GCE, NAT
  • Google Play / AppStore IAB Validation
  • Payment API, SMS API

Message Queue


  • GCP Pub/Sub, NATS, RabbitMQ.
  • Re-queue durable message while client or server dead.
  • Subscription strategy : Queue, fan Out
  • NATS Master Slave structure.

Open source

Orchestrator  •  https://github.com/yw4c/orchestrator

orchestrator is a framework of Saga-Pattern. As an orchestrator service, it wraps transaction as a flow delivering contexts to upstream services. It supports throttling pattern to protect upstream.

Cluster-tool  •  https://hub.docker.com/r/yw4code/cluster-tool

The docker image which can make troubleshooting easily in k8s cluster. It has useful client tools like grpcurl and web-socket, http servers which can make you troubleshoot egress, observing LB etc.

Education


National Chin-Yi University Of Technology

Bachelor degree 

Dept. of Information Management.


Contact

Powered by CakeResumePowered by CakeResume