Open Graph and Structured Data: Making Links Look Good in Chat Boxes and Search Results
Break down "ugly link previews" into two separate vocabularies: Open Graph determines the card in a chat box, while JSON-LD determines what search engines understand. Explains the three silent failures of og:image, why the twitter:card attribute name is name, why Google says structured data has "no required properties," and provides a validation script that can measure the actual image dimensions yourself.
2512 words
|
13 minutes
Frontend Error Monitoring in Practice: From window.onerror to Source Map Recovery
A production alert gives you just one line: app.9f2c1a.js:1:48213, and that line is two hundred functions crammed together. This article breaks error monitoring into three stages—capture, upload, and recovery—covering the five parameters of window.onerror and the pitfalls of catching resource errors, why the reason in unhandledrejection isn't always an Error, why production should use sourcemap: "hidden", and a ready-to-run script that maps a minified stack trace back to source file, line, and column.
2069 words
|
10 minutes
The Many Faces of Code Review: The Truth Behind LGTM
"LGTM 👍" — a 1,400-line PR approved 40 seconds later. Those three letters can be the highest form of trust or the most expensive brush-off. We break down the jargon of the review room one by one, then look at what the research data says code review actually catches — and what it misses.
2177 words
|
11 minutes
The Art of Slacking Off: An Office Survival Guide
Mouse jigglers, boss keys, "I'm running a build"—everyone knows the slacking-off jokes, but there are actually two kinds of slacking: one relies on faking activity signals, the other on automating away the waiting. They look nearly identical on your screen; the difference is what you leave behind after you walk away.
1857 words
|
9 minutes
What Is the JEV Model: A 'Silent' AI That Only Outputs Decisions With Probabilities
JEV is a 'decision model' from TypeSafe AI, founded by RLHF co-inventor Diogo Almeida. It doesn't generate text; it maps unstructured input into typed judgments with probabilities. This article breaks down its three output primitives, its RLCD training method, its performance and price, and how it relates to large language models.
1731 words
|
9 minutes
How to Scientifically Evaluate an LLM Application: Benchmarks, A/B, and Human Evaluation
Replace "this feels much better" with reproducible numbers: from the limitations of public benchmarks, custom eval sets, and biases in LLM-as-a-Judge, to paired significance testing and online A/B, plus a TypeScript judge with position swapping and confidence intervals.
2281 words
|
11 minutes
The Three Pillars of Observability: Metrics, Logs, and Traces Are Not Three Types of Data, but Three Granularities of the Same Event Stream
You have Metrics, Logs, and Traces all in place, yet you still can't pinpoint the incident—because the problem isn't whether you have three systems, but whether they can be correlated with each other. This article explains how each pillar fails in its own way (high cardinality, sampling dropping the tail, logs being non-aggregatable), and presents three ways to connect a metric spike to a specific trace: unified resource attributes, exemplars, and injecting trace_id into logs.
2041 words
|
10 minutes
Edge Computing on the Web: Moving Code Closer to Users
Breaking "edge computing" down into three verifiable engineering questions: how to account for the physical cost of a single request, what V8 isolates actually eliminate, and given the hard limits of 128MB and 10ms, which logic belongs at the edge and which must stay on the origin. Includes real CORS and rate-limiting code from this site's Cloudflare Worker.
1921 words
|
10 minutes