React Native 0.87: what the upgrade costs
0.87 makes strict TypeScript types the default. But the headline feature is not what decides the upgrade — the removals and the toolchain bumps are.
15 posts tagged production.
0.87 makes strict TypeScript types the default. But the headline feature is not what decides the upgrade — the removals and the toolchain bumps are.
Authentication is a fact you establish once. Authorization is a decision you make on every request — and that gap is where most access-control bugs live.
A prompt is an interface. Treat it like code — versioned, eval-gated, with a rollback path — not a string anyone can edit live in a CMS with no review.
Most RAG evaluation advice stops at build a labelled set and use LLM-as-judge. This is the workflow: sampling real queries, and calibrating the judge.
Reranking top-50 down to top-5 routinely beats raw retrieval by 10+ recall points. What a cross-encoder does differently, and the 50 lines that call one.
Re-embedding the corpus is the easy part. What actually breaks when you change embedding models in production, and the evals I run on either side of the swap.
Most problems people reach for an agent to solve are workflow problems with extra steps. A decision framework for telling the two apart before you build.
Vector search ranks by similarity, not permission. Why multi-tenant RAG leaks across tenants by default, and where the authorization check actually has to sit.
Mobile engineers spent a decade learning to ship software they couldn't take back. LLM teams are relearning the same four constraints, usually the hard way.
Not legal advice — the five-field logging pattern I'd want on any agent that takes real actions, and why a log you cannot replay is only a transcript.
Pick on task shape — latency, accuracy, cost, context length — not leaderboard rank. A model that wins on average isn't better on every one of your queries.
Prompt caching, model routing, and compression actually move an LLM bill. What each one does, what it doesn't, and the dashboard to build before you need it.
Tool-use loops with no exit, hallucinated arguments, state leakage, over-confident planning, retry storms — five failures I keep seeing, and what stops each.
Cardinality, sampling, replay and PII handling for an LLM system — what to log unconditionally, what to sample, and what to keep out of your logs entirely.
What separates a working RAG demo from a production RAG system isn't the retrieval — it's the evaluation, observability, and failure-mode handling around it.