May 15, 2026
Explained: COBOL
Every time a bank processes a payment, there is a reasonable chance a COBOL program is doing the work. Every time an insurance company calculates a premium or a government agency processes a benefit, there is a good chance COBOL is involved. The language was designed in 1959. It is still running, unchanged in many cases, in production today. Most engineers have heard of COBOL and formed an opinion of it without ever reading a line of it. The repu… Read More
by Phee Jay
May 15, 2026
Architecture: CICS
A bank teller presses Enter. Within 30 milliseconds, the customer's account balance is on the screen. Somewhere in a data center, a COBOL program ran, read a VSAM file, formatted a response, and terminated. The same thing happened simultaneously for several thousand other tellers at other terminals in other branches. None of them waited for each other. None of them interfered with each other's data. That is CICS. It has been doing exactly… Read More
by Phee Jay
May 15, 2026
Architecture: Mainframe
Your bank's ATM runs 24 hours a day. The transaction you just made at the counter was confirmed in under a second. The insurance claim filed this morning will be processed overnight alongside three million others. None of that happens on a Kubernetes cluster. It happens on a mainframe. For engineers who grew up on distributed systems, the mainframe is a foreign country. The vocabulary is different. The mental model is different. Even the pric… Read More
by Phee Jay
May 12, 2026
Explained: OAuth 2.0 Token Exchange
You're building a feature. A user calls your API, your API authenticates them, and then your service needs to call three downstream services to assemble the response. One of those services keeps an audit log — it records which user triggered each operation. So your team wires it up: when your API calls downstream, it forwards the user's token. Simple enough. Except the downstream service starts rejecting requests. The token your API hold… Read More
by Phee Jay