Software Development
-

Metastable Failures and Retry Storms: When Your Resilience Code Is the Outage
A short slowdown should end when the cause ends. Sometimes it does not, because the safety net keeps the system…
Read More » -

COBOL and the Economics of a “Dead” Language That Still Moves Trillions
Every few years someone declares COBOL dead. Yet banks, insurers and governments keep running it. Unlike a language in decline,…
Read More » -

TLA+ Explained: How Amazon Proves Distributed Designs Correct Before Writing Code
You have probably read about Raft, Paxos and the FLP impossibility result. However, there is a quieter question behind all…
Read More » -

Rate-Limiting Algorithms: Token Bucket Against Sliding Window
Every public API eventually meets a client that sends too much, too fast. A rate limiter is the bouncer at…
Read More » -

AI Agent Orchestration Workflows, Routing, and Multi-Agent Systems
AI agents can reason, use tools, retrieve information, and execute tasks. However, complex applications require more than individual agents. They…
Read More » -

LLM evaluation: Test and improve AI quality
Large language models (LLMs) can generate human-like responses, but fluent output does not necessarily mean correct or reliable output. An…
Read More » -

Contract Testing vs Integration Testing: Pact, Testcontainers, and Where Each One Pays Off
Picture a familiar Friday. Every test in both services is green, so the team deploys. Minutes later, the checkout page…
Read More » -

Bloom Filters and HyperLogLog: Probabilistic Structures in Everyday Services
Every busy service asks two questions all day long. First, “have we seen this item before?” Second, “how many different…
Read More » -

AI Agent Security Guardrails: Tool Permissions and Human-in-the-Loop Controls
A plain LLM call is low-risk — worst case it returns a bad sentence. An agent is different: it can…
Read More »

