Blog Archive

Browse ZiCode posts, columns, and notes in reverse chronological order, covering programming, AI tools, local models, and engineering practice.

2012: I Left Baidu Before The Wolf Culture
Essays · Views

2012: I Left Baidu Before The Wolf Culture

The seventeenth article in Thirty Years in IT and Me. In 2012, I left Baidu and joined Weibo as it was sprinting toward its IPO. Baidu's organizational atmosphere was starting to change, while Weibo stood at the intersection of mobile internet, social media, and big data platforms.

2011: Big Tech Still Felt Like A School
Essays · Views

2011: Big Tech Still Felt Like A School

The sixteenth article in Thirty Years in IT and Me. In 2011, Baidu was still in the bright years of the Chinese internet. Big companies then were not only companies; they were large engineering schools where traffic, systems, search, ads, data, and internal technical discussion pushed programmers into bigger real-world engineering scenes.

2010: The Tech Groups Inside Baidu Hi
Essays · Views

2010: The Tech Groups Inside Baidu Hi

The fifteenth article in Thirty Years in IT and Me. In 2010, I moved from a system-software company into Baidu. Baidu still had a strong engineering atmosphere then, and its internal Hi groups were full of technical discussion.

My Four Picks for the World Cup Semifinals
Data Analysis · Views

My Four Picks for the World Cup Semifinals

Before the 2026 World Cup round of 16 begins, here is a fan-style prediction for the semifinalists and champion, based on the bracket, team form, squad depth, and a little football instinct.

AI Can Write Code, But You Still Need to Know What a Program Is
Engineering Practice · Views

AI Can Write Code, But You Still Need to Know What a Program Is

The first article in Programmer Craft in the AI Era revisits program = algorithms + data structures, and explains why requirements must first become state, rules, complexity, and acceptance examples before a developer can know what to ask AI to build.

Do Not Let AI Guess Your Execution Model
Engineering Practice · Views

Do Not Let AI Guess Your Execution Model

The third article in Programmer Craft in the AI Era covers processes, threads, coroutines, event loops, and blocking calls, and explains why concurrency is not just wrapping code in async or adding more workers.

How Modules Talk to Each Other
Engineering Practice · Views

How Modules Talk to Each Other

The fourth article in Programmer Craft in the AI Era discusses function calls, HTTP/RPC, message queues, event streams, and shared databases. The point is not choosing a fashionable technology, but clarifying coupling, transactions, failure, and observability boundaries.

An API Is Not a URL; It Is a System Contract
Engineering Practice · Views

An API Is Not a URL; It Is a System Contract

The fifth article in Programmer Craft in the AI Era covers request and response schemas, error codes, idempotency, pagination, permissions, version compatibility, and contract tests. Before asking AI to write an API, write down the promise first.

A Database Is Not a Place to Dump JSON
Engineering Practice · Views

A Database Is Not a Place to Dump JSON

The sixth article in Programmer Craft in the AI Era covers table design, indexes, transaction boundaries, locks, slow queries, and migrations. A database is not a universal JSON box; it is the hardest business-constraint layer in a system.

Do Not Put Slow Work Inside the Request
Engineering Practice · Views

Do Not Put Slow Work Inside the Request

The seventh article in Programmer Craft in the AI Era covers caches, queues, and asynchronous jobs. A cache is not a magic accelerator, a queue is not a trash bin, and async jobs still need idempotency, retries, dead letters, batching, and backpressure.

High Concurrency Is Not Just Adding More Machines
Engineering Practice · Views

High Concurrency Is Not Just Adding More Machines

The eighth article in Programmer Craft in the AI Era covers connection pools, batching, rate limiting, degradation, hot spots, cascading failures, and capacity estimation. Concurrency is not a single coding trick; it is pressure design across the whole call chain.

Tests Are the Seatbelt for AI Coding
Engineering Practice · Views

Tests Are the Seatbelt for AI Coding

The ninth article in Programmer Craft in the AI Era explains how unit tests, integration tests, fixtures, contract tests, regression tests, and failure cases can constrain AI-generated code so the result is reproducible, reviewable, and maintainable.

When Systems Fail, You Need to See What Happened
Engineering Practice · Views

When Systems Fail, You Need to See What Happened

The tenth article in Programmer Craft in the AI Era explains how logs, metrics, traces, audit records, and product events form an observability boundary, so AI-generated services do not become black boxes.

Before Blaming AI-Written Code, Stabilize It
Engineering Practice · Views

Before Blaming AI-Written Code, Stabilize It

The eleventh article in Programmer Craft in the AI Era explains how to review, isolate, test, draw boundaries, delete code, and refactor in small steps so an AI prototype can become maintainable software.

What Should Programmers Still Practice in the AI Era?
Engineering Practice · Views

What Should Programmers Still Practice in the AI Era?

The twelfth and closing article in Programmer Craft in the AI Era returns to computer fundamentals, systems thinking, product judgment, communication, and collaboration, and discusses which abilities AI will amplify.

Vibe Coding Works Better When Real Data Is Involved
Original Developer Productivity · Views

Vibe Coding Works Better When Real Data Is Involved

The useful part of vibe coding is not quickly throwing together a pretty page. It is using real data to find a product shape fast, then leaving behind contracts, fixtures, tests, and handoff notes that engineering can actually pick up.

2009: Code Began to Grow in the Public Square
Essays · Views

2009: Code Began to Grow in the Public Square

The fourteenth article in Thirty Years in IT and Me. Around 2009, GitHub began turning open-source collaboration from mailing lists, patches, and project homepages into a more visible and social daily workflow. In the same year, Weibo appeared, and information streams started reshaping the Chinese internet.