I'm a backend engineer who designs infrastructure and then carries the
pager for it. Billing ledgers, webhook delivery, event pipelines,
multi-channel messaging — the layer that is invisible when it works and
a company-wide incident when it doesn't.
Most of it is decided at design time, before a line gets written. A
billing system is really an argument about what a credit
is — a count, or an amount of money — and picking wrong costs
you a rewrite and a few angry invoices. A webhook system is an argument
about whose failure becomes whose problem. Draw those boundaries right
and the code turns boring, which is the goal. Draw them wrong and no
amount of clever code buys you out of it.
I learned that the unflattering way. The webhook system shipped before
I had thought about ack deadlines at all, and merchants found the
duplicates for me — the worst possible way to find them. Per-store
isolation and the health evaluator both came after that call.
Both are things I would now build first.
The rest of it: I read a great deal of git blame, I think the obvious
explanation is usually the wrong one, and I will cheerfully spend a
weekend on a CCTV app for my television because every existing one
treats a remote control like a mouse.