All writing

Skills & Learning

Translated from the original Chinese essay · Read the Chinese original →

No doubt about it, this conclusion had to come from a programmer in Melbourne. (I mean, I have to write a few more articles related to my beloved Melbourne coffee.)

In Melbourne, coffee is a faith, an essential element woven into daily life. In every café, baristas precisely weigh the coffee grounds, fine-tune water temperature and grind size; a few meters away, programmers (like me, waiting in line for coffee) are staring at Grafana dashboards, watching CPU curves, latency metrics, and thread pools. Suddenly I feel that the barista and I are doing the same thing: obsessively polishing every variable for the sake of "stability."

Coffee and engineering routines in a Melbourne café

Alright, if a good cup of coffee is like a highly available service, then SRE (Site Reliability Engineering) is the barista who stands at the edge of the "extraction threshold" every day, guarding system stability.

Espresso is the system kernel — it must be precise, fast, and error-free

Espresso compared with a system kernel

Espresso is the foundation of all Italian-style coffee: high temperature, high pressure, extracting about 30ml of concentrated coffee in around 25 seconds. An error of more than 2 seconds, pressure fluctuations, or uneven tamping of the coffee grounds will ruin the entire cup. Any bad coffee you've ever tasted, aside from possible issues with the beans themselves, is basically due to this step not being done properly. Isn't this exactly the service stability metrics we use every day: low latency, high precision, no room for error. (Fun fact: the crema on top of an espresso is the essence of the coffee.)

Experienced baristas will directly dump a failed shot, and we do the same. Before users report a production incident, SRE steps in early — "hands faster than the accident" protects everyone's bonuses and user trust.

SREs don't just look at response time; they look at P99 latency trends, peak deviations, and SLA early warning thresholds (SLO burn rate). They know that waiting for users to "complain" is already too late.

Latte is like a microservices architecture — clearly layered

The layers of a latte compared with a microservices architecture

A latte itself is a highly structured system: the bottom layer is espresso, the middle is steamed milk, and the top is milk foam. Each layer must be properly proportioned and at the right temperature to be considered a "qualified delivery." Isn't this the design ideal of a microservices architecture?

Order service, payment service, inventory service... A system split into modules is like a latte: clear structure, but complex collaboration.

Problems arise from this. Once the milk temperature is off, the whole latte becomes watery; in a microservices system, if one API response times out, the entire transaction chain can break.

Skilled baristas, when steaming milk, sense the temperature through their hands, listen to the sound to judge the heat, and constantly adjust the position to ensure fine milk foam, achieving the "optimal serving window." Mature SRE teams configure circuit breakers, request timeout controls, and degradation strategies in the system to avoid single points of failure.

After all, according to the barrel theory: the stability of the entire system equals the pressure resistance of its weakest link.

Pour-over is a technical debt early warning system — every drop must be calculated

Pour-over coffee compared with an early-warning system for technical debt

Pour-over coffee emphasizes "control": water temperature, flow rate, bed depth, coffee-to-water ratio. Pour too fast, and extraction is insufficient; pour too slow, and the flavor becomes bitter; if unstable, the entire flavor profile falls apart. Isn't this the "technical debt" in systems? On the surface it runs normally, but underneath, mines are buried everywhere.

Programmers rush to meet deadlines, skip code reviews, test inadequately, misuse dependency versions, and leave logs that are hard to troubleshoot... Months later, the system crashes, and no one can remember how that initial "technical debt" was incurred. This is what we call Operational Latency: what you save now in development time, you will pay back tenfold in future stability fixes.

SREs fear systems that "look normal on the surface but have messy instrumentation," just like drinking a coffee that looks fine but has a chaotic flavor — every sip only makes you more anxious.

Cold drip is the model of long-term stability

Cold drip, or cold brew, is one of the most patience-demanding coffee methods. Cold water slowly extracts the coffee over 6 to 12 hours. The drip rate must remain constant, otherwise the flavor deviates significantly.

I once had a cold drip with an amazing flavor at a café. I asked them what their secret was, and the owner said: "Never skip cleaning, and keep calibrating."

As a programmer who is often on call, I truly understand: real system stability never comes from a single fix or a major version optimization, but from continuous observability, automatic metric calibration, process standardization, and infrastructure health checks — actions that seem "boring."

Just as cold drip requires daily cleaning of equipment, weekly filter replacement, and monthly flow rate measurement, SREs have their own "rituals": log audits, failure drills, capacity assessments, SLO checks, and runbook updates.

We say platform stability is "engineering-grade reliability," not the absence of bugs, but the ability to be notified quickly when bugs occur and fix them before users notice. Stability never comes from reaction speed, but from slow and steady systematic construction.

Latte art ≠ the entirety of user experience

Melbourne baristas love to pour swans, hearts, and tulips on lattes, spending over ten seconds pursuing perfection. But they also know clearly: no matter how beautiful the latte art, if the coffee tastes bad, it's all for nothing. Especially for takeaway coffee, latte art really isn't necessary. Of course, if I'm sitting in the café and they bring me a latte without art, I might struggle with how to rate it. Latte art is Melbourne baristas' respect for their customers.

The trade-off between beautiful latte art and system reliability

But I believe everyone has used a UI that looks beautiful but is full of bugs and non-functional features. That's like drinking a latte with perfect art but failed extraction — I silently blacklist that café.

True user experience is never "beautified" into existence; it is "supported" into existence.

SREs often emphasize one point in system design: don't just look at the Happy Path experience; first ensure the system doesn't crash on the Unhappy Path. This logic applies equally to coffee: no matter how premium the flavor, if the temperature is off or the extraction is skewed, latte art can't save it.

Final thoughts

The ultimate goal of a cup of coffee is to make people want to drink it every day. And as a programmer, I know this: the end of code is not technical showmanship, but making people feel safe using it.

So next time before you adjust parameters, think about how a barista treats their grinder — not how fancy the adjustment is, but how stable it is. An excellent SRE/programmer doesn't need latte-art-like tricks, but will definitely leave behind day-after-day trustworthiness behind the flavor.

If you ever get the chance to visit Melbourne, I'll treat you to coffee ☕️.