1. About Me
Tang Moying (唐莫盈) — my real name is Tang Ming (唐明). The pen name “Moying” comes from taking the character 明 apart and playing on the sound; I mulled it over for a long time before settling on it.
Born in the 1990s, I started working in 2014 and focus on DevOps, continuous integration and continuous delivery.
My hometown is Gushi County, Henan Province — a place known as “the ancestral home of Fujian and Taiwan, the homeland of the Tang people”.
The languages I use most are Python, Groovy, Java, Batch and Shell (these days I Vibe Code: 100% of my code is written by AI).
Jobs I have held:
-
J2EE developer
-
Big data engineer (distributed database HBase)
-
Continuous integration engineer (CIE), plus experience managing a CI team of 10+
-
Continuous integration architect (cloud-native, large-scale, reliable Jenkins cluster architecture)
-
DevOps engineer
-
Senior CI engineer & head of the DevOps efficiency department (team of 3–5)
Open-source enthusiast. A few certificates and honours:
How I came to DevOps
I belong to the category of people who are genuinely interested in computing, who enjoy learning and thinking, like to dig into things and learn quickly. That made my interests broad, my knowledge wide-ranging and my experience deep, and it lets me draw analogies across fields and pick up new software and new technologies fast.
Looking back, I have been working for almost nine years.
At university I enjoyed tinkering with Linux, taught myself web development to build sites and blogs, taught myself Android development to write apps, and so on. (I built a browser extension in HTML5, which to my surprise was bought by someone for 7,000 yuan — my first real pot of money. An Android app of mine also made it into a phone vendor’s app store editor’s picks. All in the past, of course, but it still excites me to think about it.)
I started out in pure development. In 2016 my job brought me into contact with continuous integration and Jenkins; at first I only maintained it on the side, but then CI became its own function and I had the chance to choose between development and the dedicated CI team. Because my interest in continuous learning never faded at work — I always want to understand and play with new languages and new tools — I eventually chose to make DevOps my profession, and I have worked in DevOps ever since.
DevOps is a methodology that runs through every stage of a project. The most complete DevOps flow starts with requirements and ends with a product in production, covering requirements management, defect management, source control, branching strategy, developer tool integration, development environment management, code inspection, compilation, packaging, testing, deployment, monitoring and much more.
Coming from a development background makes doing DevOps work comfortable. Most people in DevOps roles come from operations and do not write code, which makes it easy to hit a ceiling as they grow. With the cloud-native wave, infrastructure as code has become a trend, and in the DevOps world configuration as code and pipeline as code are already facts. A developer can:
- write code: comfortably drive a pipeline DSL (such as Jenkins
Pipeline as Code, aGroovy-based DSL) and write pipelines;
and also:
- read code: the large set of tools integrated into DevOps pipelines are mostly open source, and being able to read their source to debug and solve problems is a very large advantage.
Code in one hand, culture in the other
My other great interest is studying the fine traditional culture of China and drawing on the wisdom of the ancients.
Contemporary education is mainly the education of knowledge.
Knowledge can create wealth and keep a person alive, but it struggles to put a person’s mind at ease.
Reading the old books is at once calming the mind, cultivating the mind and settling one’s resolve.
On matters of no consequence I behave like a newborn, keeping that ancient state of innocence.
When something moves me I write poetry and experience the beauty of words.
I hold words in awe, believing that writing carries feeling and writing carries the Way.
In short: act rationally when there is work to do, and keep a natural, unhurried state when there is none — finding joy in it.
2. About This Site
This site lives at tangmoying.com; tangming.me redirects here automatically.
Editorial style
My principle: the basics are the root, and the root is the core.
Articles here try to stay plain and readable. I deliberately keep the information density of a single article down, so that an article is simple and still carries enough useful information.
DevOps spans the whole software life cycle and involves a great many tools and concepts. For the same kind of tool I will introduce even the outdated ones, because the earliest tools were simpler, the core problem they solved was clearer, and they contain the most basic and central concepts. Seeing how tools change also makes the evolution of the technology visible.
In short: tools go out of date, frameworks iterate, but the core problem behind them does not change. The point of DevOps is to combine tools into an end-to-end flow and make that flow actually work. Tools can be swapped and flows can be reworked, but you must be clear about what problem you are solving.
That idea is set out more systematically in the “DevOps Methodology” series under the DevOps section.
The sections
Articles are organised by the full DevOps flow, covering the whole software delivery chain, in 11 sections:
The DevOps flow (8):
| Section | What it covers |
|---|---|
| Requirements | Requirements management and agile practice: Scrum boards, workflow design, defect tracking |
| Coding | Version control tools, branching strategy, code collaboration and development standards |
| Build | Compilation, dependency management, multi-language build toolchains and build systems |
| Test | Code quality assurance: static analysis, unit testing, code coverage |
| Release | Release engineering: versioning, changelogs and artifact repositories |
| Deployment | Cloud-native deployment, containerisation and operations automation |
| Monitoring | System monitoring, log collection and alerting |
| Feedback | CI/CD feedback systems: notification channels and feedback mechanism design |
Topical categories:
- DevOps — CI/CD toolchains, continuous integration practice and DevOps methodology
- AI — basic AI concepts, Vibe Coding practice and local large-model exploration
Cultural essays:
- 墨影闲谈 (Mo Ying Xian Tan) — traditional culture, thoughts on life, poetry, reading notes and everyday musings