About

  • TechLead in DevOps/Build/Release area.
  • Built team’s CI and DevOps from scratch and share best practices within team and BU.
  • Familiarity with Windows, Linux, AIX, Solaris, HP-UX operating systems, software development lifecycle, DevOps toolchain.
  • Good at doing “Scan-Try-Scale”, following the latest developments and technologies in the DevOps industry, experimenting and applying best practices to the team.
  • My main development language is Python/Shell/Golang/Groovy for DevOps related work.
  • Open source enthusiast, created cpp-linter and commit-check two projects in my spare time, at present cpp-linter-action has more than 400 users, and is used by Microsoft, Linux Foundation, as well as high starts GitHub project.
  • Knowledge sharer, sharing hundreds of technical articles with hundreds of thousands of readers on my blog and WeChat public account “DevOps Engineer” for seven years.

Experiences

DevOps/Build/Release Engineer

2015 - Present
Rocket Software, Dalian

Rocket MultiValue Build/Release/DevOps Engineer responsible for product builds and releases, infrastructure management, and CI/CD pipeline design and implementation related to DevOps.

Play DevOps/Build/Release role in the following products

  • MultiValue Application Server: UniVerse, UniData, jBASE, OpenQM.
  • MVAS Tools: UCC, UDNK, MVVS, UOPY, and backup of UDBT and SBXA.

DevOps Best Practices Implemented

  • Configuration as Code (CaC) - transfer all builds from manual or Bamboo to Jenkins and create Jenkins shared library to better manage automated builds and scale. This provides team with a self-service build saves team’s time and saves my time and CaC can quickly recover in case of any disaster. Also, share our best practices with other teams in creating a sharing pipeline library repo in Rocket.
  • Infrastructure as Code (IaC) - created ansible-playbooks and mv-infra repos to manage build, Jenkins server, and development infrastructure as code to help team quickly provision dev/build environment and prevent business from disaster.
  • Created Docker Images repo to Dockized MVAS products for containerization - the repo applies many of the latest practices in DevOps like building images with Docker buildx bake, testing images with health check, pytest, and CI/CD, management dependences with Renenote bot, and deploying docker images with Kubernetes.

Initiatives proposed and implemented

  • Proposed DevOps maturity badge to help MV teams better measure our DevOps maturity which has been scaled to Rocket R&D.
  • Proposed conventional commit for the MVAS team and scale to the entire MV team.
  • Manage VMs with Jira - created Jira and wrote a Python program to automate the management of VMs to solve the problem of managing VMs for teams and managers which has been applied to the entire App Mod BU.
  • Code Coverage - helped UniVerse and UniData obtain code coverage results for the first time in decades. and created coverage online reports for U2, jBASE, MVVS, etc.
  • Rocket Build - always contributed innovative ideas, RB-218 MV Intelligent Terminal won the 2019 Rocket Build First Prize and CPO Award. RB-544 VitalSign was selected and reached to final round in 2020 Rocket Virtual Build.
  • Before I joined MV, I was Rocket Discover automation leader, leading team to implement automated testing from scratch and improve regression testing efficiency.

Software Engineer In Test

2012 - 2014
JD.COM, Beijing

Perform functional testing, development automated test script, and continue integration.

Quality Assurance Engineer

2009 - 2011
SIMCOM(Shanghai) & Neusoft(Beijing)

Design and perform test cases. Became a test leader and was responsible for assigning tasks as well as sharing testing techniques.

Projects

Independent projects developed on and off the job.

u2cicd - Created MVAS Jenkins shared library to configure CI/CD pipeline as code and share common code across projects thus optimizing SDLC.
docker-images - Dockerize MVAS products for containerization. the repository adopts the latest DevOps practices, including building images using Docker buildx bake, testing with health checks and pytest, dependency management with Renenote bot, and deploying Docker images with Kubernetes.
ansible-playbooks - Management MVAS build, Jenkins server, and development infrastructure as code. This has empowered the team to rapidly provision development and build environments, minimizing disaster risks.
U2Box CLI - A command-line tool developed using Go, through the interactive command line to help developers and testers quickly and easily prepare the required development and testing environment.
Quality Gates - Quality Gates helps teams improve coding practices and code quality by integrating coding practices, security scanning, code analysis, Git Squash, TODO, Spelling Checks, and more into Pull Request. This project is a finalist in the 2021 Rocket Build.
MV Intelligent Terminal - Create intelligent command line for MV products via the MV UOPY API, including auto-completion, highlighting. This project won both the 1st place and CPO awards at Rocket Build 2019.
MV VM Management with JIRA - Leveraging the existing system, Jira eliminates the extra work associated with managing VMs through Excel/Wiki, and provides visual dashboards and queries through Jira to help teams sort through and manage a large number of VM resources.
cpp-linter - Continuous Integration solution for C/C++ code formatting and static analysis
cpp-linter-action - A Github Action for C/C++ Code Lint, integrating clang-format and clang-tidy, to inform developers of the results of the analysis through comments or annotations.
clang-tools - Host and support all versions of clang-format and clang-tidy docker images.
commit-check - Open source alternative to Yet Another Commit Checker that provides checks for commit message, branch naming, commit author username and email.
atlassian-api-py - Atlassian Rest API library written in Python , easy to continuously integrate with Atlassian's Jira, Bitbucket.

Skills

DevOps

DevOps toolchain

Python

Shell

Go

Groovy