Blog

Deep-dive guides on AI agents, agent orchestration, MCP, and developer tooling.

5 posts found

Data Formats

UTF-8 vs. UTF-16: Why UTF-8 Won and What Surrogate Pairs Actually Are

Why does "πŸ˜€".length return 2 in JavaScript but 1 in Python? The answer is a 1990s encoding decision that still causes truncation bugs, MySQL charset gotchas, and broken emoji today.

September 5, 2026 Β· 7 min read
Data Formats

YAML's Whitespace Footguns: Why the Norway Problem and Tab Indentation Keep Breaking Configs

YAML's indentation-as-syntax and implicit type inference make it readable to write and dangerous to get subtly wrong β€” here's why 'NO' becomes false, why tabs are banned, and why 1.10 silently becomes 1.1.

August 19, 2026 Β· 6 min read
Data Formats

JSON Schema in Practice: What allOf, oneOf, and additionalProperties Actually Do

JSON Schema looks like static typing for JSON, but its composition keywords follow evaluation rules that trip up most people writing their first real-world schema β€” here's the mental model that actually holds up.

August 10, 2026 Β· 6 min read
Data Formats

Base64 vs Base32 vs Base58: Why Bitcoin Doesn't Use the Encoding Your API Does

Base64, Base32, and Base58 all turn bytes into printable text, but they solve different problems. Two chop the bitstream; one converts the whole thing as a big number β€” and that single distinction decides which belongs in front of a human.

July 21, 2026 Β· 7 min read
Data Formats

NDJSON vs JSON Arrays for Streaming: Why the Trailing Bracket Is the Problem

A JSON array requires seeing the closing bracket before any of it is valid β€” which is exactly what breaks when you stream millions of records. Newline-delimited JSON fixes that by making every line a complete, independent document.

July 13, 2026 Β· 6 min read