UP | HOME
Land of Lisp

Zhao Wei

How can man die better than facing fearful odds, for the ashes of his fathers and the temples of his Gods? -- By Horatius.

About Me

1. Background

I am a software engineer who is passionate about functional programming using Erlang/Elixir and Lisp. I always have strong desires to apply mathematics and algorithms to solve problem in a straight manner. Currently, I am living in Shanghai and have an open mind to explore the world.

2. Education

  • Otago University (2016/01 – 2018/09)
    Master of Applied Science, specialized in Computer Science
  • Beijing University and Technology (2004/07 – 2009/07)
    Bachelor degree in Computer Science

3. Work Experience (as Software Engineer)

3.1. Microsoft (2021/11/30 – Present)

My job is mainly about enhance the current Azure storage end to end testing tools.

3.2. Siemens PLM Software (2018/10 – 2021/11/15)

My job responsibilities include:

  • Automate deployment of great products and services in cloud environments.
  • Design and develop intelligent operation and operation platform, tools, and system.
  • Participate in solving the problems of capacity, performance and stability of cloud environment.
  • Contribute individually or in a team as needed to meet the requirements of other non-cloud projects.
  • Design and implement architecture core services for a CAD product.
  • Maintain existing software code - analyze and resolve customer and internally reported problems

3.2.1. Loadtest using Golang (from 2021/06 to present)

Using Golang to execute multiple instances of existing javascript code, then parse and collect each javascript script’s stdout and stderr to perform metrics comparision.


In this project, the following Golang skills have been practised:

  • Web programming in websocket, socket and http.
  • Concurrent programming using sync.WaitGroup, and goroutine + channels.
  • Use interface to mock AWS interface to do unit test.
  • Encoding and decoding according to application protocol.

3.2.2. Distributed service admin-console (from 2020/07 to present)

An admin-dashboard for Atlas distributed service (stateless service for visualization). Implement frontend using Vuejs and backend using Nodejs.

My responsiblity includes:

  1. Design relational database and implement it using PostgreSQL.
  2. Frontend implementation using Vuejs.
  3. Backend implementation using Nodejs.
  4. Use node-oidc-provider to do OAuth2.0.
  5. Deployment pipeline, in GitLab CICD pipeline:
    • Build backend image
    • Build frontend image with Nginx which is used for web server as well as transparent proxy for backend.
    • Publish application images to AWS S3
    • Write AWS cloudformation template
    • Deploy service from pipeline using cloudformation template.

3.2.3. Admin-dashbaord for stateful service based on AWS (from 2019/05 to present)

Many of our services are based on using AWS Cloud. We build an admin-dashboard to manage multiple different microservices including:

  1. Log search
  2. Task Definition
  3. Worker Pool
  4. Role-Based-Access

My responsibility includes:

  1. Implementation frontend (Vuejs) and backend(Nodejs), especially features about authentication and authorization following OAuth2.0 standard.
  2. Deployment using Docker + GitLab pipeline + AWS cloudformation template.
  3. Using this dashboard to debug Atlas-stateful-service

3.2.4. Tester for end-to-end test (from 2019/01 to present)

Based on many microserivces we built, we need a tester tool to do end-to-end test.

My responsibility includes:

  1. Implement it with nodejs, websocket and socket.
  2. Deploy it using Docker + GitLab pipeline to AWS with cloudformation template.
  3. Write pageduty runbook for handling incidents.

4. Work Experience (as non Software Engineer)

4.1. ATOS (2012/02 – 2015/06)

As a Linux system engineer, my job at Atos includes

  1. In VGIC (Volkswagen Group (Import) Co. Ltd.) project:
    • Follow up project operation and optimize maintenance process.
    • Make specifications about monthly report and project operation.
    • Communicate with VGIC and dealer site for server maintenance, report and analyzing monitor incidents monthly for service quality SLA.
  2. Installing hardware and software, maintaining Linux Servers.
  3. Troubleshooting and resolution of application and system related problems.
  4. Performing system software upgrades including planning/ scheduling security patch, and maintaining integrity of the operating system environment.
  5. Performing backup administration, including backup and restore of data.
  6. Responding to outages both during normal business hours and in an after-hours, on call capacity.

4.2. JobKoo.com (2010/02 – 2011/02)

I am doing destop service for Windows platform.

5. Knowledge

5.1. Core skills

  • Concurrent programming using Golang.
  • Web programming using Javascript and Golang.
  • Solid implementation of data structure and algorithm.
  • Fast learning driven by interest and curiosity. For example, I am learning distributed-system using Erlang/Elixr and learning algebraic data type using OCaml.
  • Good understanding about operating system (Unix like system).

5.2. Experienced

  • Machine learning using Python, such as PCA, clustering and neural network.
  • Object-oriented programming with in C++ and Java.
  • Nodejs(Express)
  • Vuejs
  • Network programming, such TCP/IP sockt, websocket.
  • Database including
    • PostgreSQL
    • AWS DynamoDB
  • Devop tools, including
    • Define AWS cloud infrastructure using AWS cloudformation template or Terraform, including:
      • Upload application image into S3.
      • Create ECS service from application image by defining
      • Manage service log using cloudwatch
        • Extract metrics from cloudwatch
        • Set alarm based on metrics and integrate it with pagerduty.
    • GitLab CICD
    • Docker
    • Nginx

5.3. Familar with

  • Erlang/Elixir
  • OCaml
  • Lisp
  • iOS and OS x programming using Swift
  • Linux driver development

6. Hobby

  • Functional programming in Lisp and Erlang.
  • Having fun with interesting algorithms related to distributed system and symbolic AI.
  • Play the RTS game: Supreme commander: forged alliance.

7. Contact

  • WeChat: 15811257483
  • Email: hyperion_z@outlook.com