Must-read articles & essays¶
Curated for a 15-year engineer. Each item says why it earns a slot, an estimated read time, and the roadmap week where it fits best. Use these for the weekly 1-hour deep-read slot (see reading system); apply read → note → 1 flashcard.
Phase → week mapping
P1 wk 1–4 foundations · P2 wk 5–8 RAG & evals · P3 wk 9–12 agents & protocols · P4 wk 13–16 production & architecture · P5 wk 17–20 scale & depth · P6 wk 21–24 capstone & interviews
Agents & context engineering¶
| Article | Why it matters | Read | Fits |
|---|---|---|---|
| Building effective agents — Anthropic | The canonical "workflows vs agents" taxonomy (prompt chaining, routing, orchestrator-workers, evaluator-optimizer). Start every agent design here. | 20 min | P3 · wk 9 |
| LLM Powered Autonomous Agents — Lilian Weng |
Planning / memory / tool-use decomposition with references to every foundational paper; still the best mental model. | 45 min | P3 · wk 9 |
| Effective context engineering for AI agents — Anthropic | Treats context as a finite budget: compaction, just-in-time retrieval, sub-agents, note-taking. The 2025–26 successor to "prompt engineering". | 25 min | P3 · wk 10 |
| Context Engineering for AI Agents: Lessons from Building Manus |
Production lessons: KV-cache hit rate as the key metric, masking tools instead of removing them, file system as memory. | 20 min | P3 · wk 10 |
| How contexts fail and how to fix them — Drew Breunig |
Names the failure modes (poisoning, distraction, confusion, clash) so you can debug long-running agents systematically. | 15 min | P3 · wk 10 |
| Context Rot — Chroma research |
Empirical evidence that performance degrades well before the advertised context limit; kills "just stuff it in 1M tokens". | 20 min | P2 · wk 6 |
| How we built our multi-agent research system — Anthropic | Honest multi-agent write-up: token cost (~15x chat), orchestration prompts, eval approach, when multi-agent is worth it. | 25 min | P3 · wk 11 |
| Don't Build Multi-Agents — Cognition | The counter-argument: context sharing and conflicting decisions make naive multi-agent brittle. Read right after the Anthropic post and form your own view. | 12 min | P3 · wk 11 |
| Writing effective tools for agents — Anthropic | Tool design as API design for a non-deterministic caller: namespacing, token-efficient responses, eval-driven tool iteration. | 20 min | P3 · wk 10 |
| Code execution with MCP — Anthropic | Why loading hundreds of MCP tool schemas into context doesn't scale and how "tools as code" cuts tokens. | 15 min | P3 · wk 12 |
| 12-Factor Agents — HumanLayer |
Engineering principles for agents you can operate: own your prompts, own your control flow, stateless reducer, pause/resume. | 40 min | P4 · wk 13 |
| A practical guide to building agents — OpenAI (PDF) | Vendor view on orchestration patterns and guardrails layering; useful to compare with Anthropic's taxonomy. | 30 min | P3 · wk 9 |
| Agents — Chip Huyen | Book-chapter depth on planning, tool selection and failure modes of agents, with evaluation angles. | 50 min | P3 · wk 11 |
RAG & search¶
| Article | Why it matters | Read | Fits |
|---|---|---|---|
| Patterns for Building LLM-based Systems & Products — Eugene Yan | Seven patterns (evals, RAG, fine-tuning, caching, guardrails, defensive UX, feedback) — a system-design checklist. | 60 min | P2 · wk 5 |
| Introducing Contextual Retrieval — Anthropic | Numbers on contextual embeddings + BM25 + reranking reducing retrieval failures; a clean baseline for your RAG lab. | 15 min | P2 · wk 5 |
| Rerankers and two-stage retrieval — Pinecone | Clear explanation of bi-encoder vs cross-encoder and why two-stage retrieval wins on quality/latency. | 20 min | P2 · wk 6 |
| Hybrid search revamped — Qdrant | Fusion strategies (RRF, weighted), multi-stage queries; practical with code. | 20 min | P2 · wk 6 |
| Systematically Improving Your RAG — Jason Liu |
A flywheel: synthetic questions → retrieval metrics → segment failures → targeted fixes. Very "consultant-practical". | 25 min | P2 · wk 7 |
| There Are Only 6 RAG Evals — Jason Liu |
Reduces RAG eval to relationships between question, context and answer; cuts through metric soup. | 12 min | P2 · wk 7 |
| LazyGraphRAG — Microsoft Research | Why GraphRAG's up-front indexing cost is the problem and how deferred graph construction changes the economics. | 15 min | P5 · wk 18 |
Evals¶
| Article | Why it matters | Read | Fits |
|---|---|---|---|
| Your AI Product Needs Evals — Hamel Husain | Three levels of evals (unit, human/model, A/B) tied to a real product; the "why" before any tooling. | 30 min | P2 · wk 7 |
| LLM Evals FAQ — Hamel Husain & Shreya Shankar |
Error-analysis-first: open coding, axial coding, binary pass/fail judges. Answers the questions you'll actually hit. | 60 min | P2 · wk 7–8 |
| Using LLM-as-a-Judge for evaluation — Hamel Husain | "Critique shadowing": align a judge with a domain expert and measure agreement before trusting it. | 30 min | P2 · wk 8 |
| Evaluating the Effectiveness of LLM-Evaluators — Eugene Yan | Survey of judge techniques, biases, and when they correlate with humans; numbers from many papers. | 45 min | P2 · wk 8 |
| Task-Specific LLM Evals that Do & Don't Work — Eugene Yan | Which metrics hold up for classification, summarisation, translation, toxicity; practical thresholds. | 30 min | P2 · wk 7 |
| Demystifying evals for AI agents — Anthropic | Agent-specific eval design: graders, transcripts vs outcomes, capability vs regression suites. | 25 min | P3 · wk 12 |
| Who Validates the Validators? — Shankar et al. | Research on "criteria drift": you can't fully define eval criteria before seeing outputs. Justifies iterative eval design. | 30 min | P2 · wk 8 |
LLM production lessons¶
| Article | Why it matters | Read | Fits |
|---|---|---|---|
| What We've Learned From A Year of Building with LLMs — Yan, Bischof, Frye, Husain, Liu, Shankar | Tactical, operational and strategic lessons from six practitioners. The best single overview. | 90 min | P1 · wk 3 |
| Building A Generative AI Platform — Chip Huyen | Reference architecture: context construction, guardrails, router, gateway, cache, agent patterns, observability. Use as your capstone skeleton. | 45 min | P4 · wk 13 |
| All the Hard Stuff Nobody Talks About when Building Products with LLMs — Honeycomb |
Early but timeless: context windows, latency, prompt injection, legal — from a team that shipped. | 20 min | P1 · wk 3 |
| The lethal trifecta for AI agents — Simon Willison | Private data + untrusted content + exfiltration channel = breach. The security frame for every agent design review. | 10 min | P3 · wk 12 |
| Prompt injection: What's the worst that can happen? — Simon Willison | Concrete exploit scenarios; why "better prompts" don't fix it. | 15 min | P4 · wk 14 |
| Emerging Patterns in Building GenAI Products — Bharani Subramaniam & Martin Fowler | Pattern-language treatment (RAG, guardrails, evals, fine-tuning) in architecture vocabulary — handy for ADRs. | 60 min | P4 · wk 14 |
Distributed systems classics¶
| Article | Why it matters | Read | Fits |
|---|---|---|---|
| Notes on Distributed Systems for Young Bloods — Jeff Hodges | Short list of hard-won truths (failure is common, backpressure, measure p99). Re-read yearly. | 15 min | P1 · wk 1 |
| The Log — Jay Kreps | The log as the unifying abstraction behind databases, Kafka and stream processing. Foundation for event-driven architecture. | 45 min | P1 · wk 2 |
| Timeouts, retries, and backoff with jitter — AWS Builders' Library | Retry storms, jitter, and retry budgets explained by AWS; applies directly to LLM-provider calls. | 20 min | P1 · wk 2 |
| Avoiding insurmountable queue backlogs — AWS Builders' Library |
Why queues hide overload, LIFO vs FIFO under backlog, shuffle-sharding. The rest of the library is equally good. | 25 min | P4 · wk 15 |
| The Tail at Scale — Dean & Barroso | Why p99 dominates at fan-out; hedged requests and tied requests. Required for any latency discussion. | 30 min | P5 · wk 17 |
| Please stop calling databases CP or AP — Martin Kleppmann | Why CAP is a poor design vocabulary; use linearizability, latency and consistency models instead. Interview gold. | 20 min | P1 · wk 3 |
| How to do distributed locking — Martin Kleppmann | Fencing tokens, why Redlock is unsafe under timing assumptions. Classic L3 interview material. | 25 min | P5 · wk 18 |
| Load Balancing — Sam Who |
Interactive visual essay on round-robin, least-connections, PEWMA. Best intuition-builder there is. | 20 min | P1 · wk 1 |
| Patterns of Distributed Systems — Unmesh Joshi | WAL, leader & followers, high-water mark, lease, generation clock — named patterns with code. | 2 h (catalogue) | P5 · wk 17–18 |
| How Discord Stores Trillions of Messages — Discord | Cassandra → ScyllaDB migration, hot partitions, request coalescing via data services. A perfect case study. | 20 min | P5 · wk 19 |
Architecture¶
| Article | Why it matters | Read | Fits |
|---|---|---|---|
| MonolithFirst — Martin Fowler | The default stance for new systems; pairs with modular-monolith discussions. | 10 min | P4 · wk 15 |
| Documenting Architecture Decisions — Michael Nygard | The original ADR post. Short; defines the format you'll use in docs/log/adrs/. |
10 min | P4 · wk 13 |
| Choose Boring Technology — Dan McKinley | "Innovation tokens" — the argument you need when every team wants a new agent framework. | 15 min | P4 · wk 16 |
| Online migrations at scale — Stripe | Dual-write → backfill → read switch → cleanup; the migration pattern Staff engineers own. | 15 min | P4 · wk 16 |
| Deconstructing the Monolith — Shopify | Modular monolith with enforced boundaries instead of microservices. A strong counterweight to microservice defaults. | 20 min | P4 · wk 15 |
Staff+ & career¶
| Article | Why it matters | Read | Fits |
|---|---|---|---|
| Staff archetypes — Will Larson | Tech lead, architect, solver, right hand — decide which one you're aiming for. | 15 min | P1 · wk 1 |
| Work on what matters — Will Larson | Avoid snacking and preening; find the work the company actually needs. | 10 min | P1 · wk 4 |
| Writing an engineering strategy — Will Larson | How to write strategy docs that get used; a core Staff artifact. | 20 min | P4 · wk 16 |
| Being Glue — Tanya Reilly | The invisible technical-leadership work, and how to make it count for promotion. | 25 min | P6 · wk 21 |
| How I ship projects at big tech companies — Sean Goedecke |
"Shipping is a social construct": owning the outcome, not the code. Candid and very senior. His blog is a gem overall. | 15 min | P6 · wk 22 |
| The Engineer/Manager Pendulum — Charity Majors | Frames the IC vs manager choice for a 15-year engineer. | 15 min | P6 · wk 24 |
Python & Java¶
| Article | Why it matters | Read | Fits |
|---|---|---|---|
| What's New in Python 3.14 — Python docs | Free-threaded build support, template strings, deferred annotations, multiple interpreters. Know it for interviews. | 40 min | P1 · wk 2 |
| Python free-threading guide |
How to run/test/port to 3.14t; which libraries are ready. | 30 min | P5 · wk 19 |
| Parse, don't validate — Alexis King | The idea behind Pydantic-at-the-boundary and typed domain models; language-agnostic. | 25 min | P1 · wk 3 |
| Notes on structured concurrency — Nathaniel J. Smith |
Why asyncio.TaskGroup and Java's StructuredTaskScope exist. Changes how you write concurrent agents. |
40 min | P3 · wk 10 |
| JEP 444: Virtual Threads — OpenJDK | Primary source on virtual threads, pinning and when they help; basis for Spring Boot 4 concurrency. | 30 min | P4 · wk 14 |
| JEP 505: Structured Concurrency (Fifth Preview) — OpenJDK | Still preview in JDK 25; compare with Python TaskGroup for the Java track. | 20 min | P4 · wk 14 |