Name: Tang MoYing
Position: Senior Software Engineer
Based in: Zhuhai, China
Certified Jenkins Engineer
Star contributor of the Jenkins Chinese community, 2nd and 4th editions
Outstanding volunteer of the China DevOps community
Worked successively as a J2EE developer, big data developer and continuous integration engineer, with experience managing teams of 10+. Senior software engineer at a listed group company.
Currently a DevOps engineer, building a bank’s Jenkins-based DevOps platform, focused on the DevOps, continuous integration and continuous delivery stack.
Interested in computing technology in the broadest sense — keen to learn and to think things through, which has made for a wide range of interests and experience. Able to draw analogies across fields and to pick up new software and technologies quickly.
Main programming languages in current use: Python, Groovy, Java.
Another major interest is the study of traditional Chinese culture and the wisdom of the ancients.
Contemporary education is mostly an education in knowledge.
Knowledge can create wealth and keep a person alive, but it rarely settles the mind.
Reading the classics is at once a way to calm the mind, to cultivate it, and to set one’s aims.
In matters of no consequence, keep the openness of a child and a state of ancient simplicity.
When something moves me, I write poetry, to taste the beauty of language.
I hold writing in awe: words carry feeling, and words carry the way.
In short: act rationally when there is work to do, and keep a natural, unhurried state when there is not.
Attitude to work and life
Engaged in the world for work; detached from it for living.
Do one’s utmost to help build a good society,
and take the sky as a mat and the ground as a seat to taste the natural world.
High efficiency at work, slow living outside it.
In spare time: books, films, growing vegetables, cooking — and taking pleasure in it all.
Posts
- Jenkins FAQ Collection (Part 1)
- Jenkins FAQ Roundup (Part 2)
- Jenkins FAQ Roundup (Part 3)
- Jenkins FAQ Collection (Part 4)
- Jenkins——the thing which auto everything
- Jenkins FAQ Collection (Part 7)
- Groovy Syntax Tutorial Series: Comments (Part 1)
- A Clear Guide to the Relationships Between rake, Rakefile, gem, gemspec, bundler, bundle, and Gemfile
- Groovy syntax tutorial, part 2: keywords and identifiers
- Groovy Syntax Tutorial Series: Strings (Part 3)
- Groovy Syntax Tutorial Series: Numbers (Part 4)
- Groovy syntax tutorial, part 5: booleans
- Groovy Syntax Tutorial Series: Collections (Part 6) [Final]
- How to Use the Jenkins Declarative Pipeline
- Jenkins Containerized Deployment: How to Persist JENKINS_HOME
- Jenkins Plugin Update Center address changer — switch to a domestic mirror with one click
- Jenkinsclient 1.0 Released: A Powerful Open-Source, Cross-Platform Jenkins CLI Client Under the Mulan Open Source License
- The Automation Revolution and DevOps
- Processes Started by Jenkins Always Exit After the Build? Use the keepRunning Step for an Elegant Fix
- Jenkinsclient Tutorial Series: Introduction and Installation (Part 1)
- Jenkinsclient Tutorial Series: Viewing Basic Information (Part 2)
- Jenkins FAQ Collection (Part 8)
- Jenkins Release Types and How to Choose One
- Should Creating a Pipeline Be Called Setting Up, Configuring, or Developing?
- Distinguishing the three different levels of dependencies in Gradle
- Using the Latest Version of a Gradle Dependency
- The Jenkins AI expert is live!