The AI section of my bookshelf has three books on it. That is not laziness, it is the survival rate.
AI engineering
is the discipline of building applications on top of foundation models somebody else trained — evaluation, prompting, retrieval, routing, and the operations that keep all of it running in production.
This list is for the engineer doing that job: shipping features on models you call over HTTP. If you train base models for a research lab, almost none of this applies and you already know where to look. Everyone else is an application engineer with a probabilistic dependency, which is a genuinely new problem and a very old one at the same time.
Disclosure before anything else. I build Codelit, an AI product that generates architecture diagrams, product boards and agent workflows, so every book below is graded against a system I have to keep running rather than against a syllabus. It also means you should read my praise of the evaluation chapters with the knowledge that my own product does not fully live up to them: Codelit validates generated output structurally, with a Zod schema, and a diagram can pass every schema check and still be architecturally wrong. Structural validation is not evaluation. That gap is mine, not the book's.
Why is the AI section of my shelf only three books long?
Because most AI books are organised around facts that expire, and the expiry date arrives before the print run does. Prices, model names, benchmark scores and SDK signatures all move faster than a publishing schedule, and a technical book takes months to travel from finished manuscript to shelf.
Two numbers make the point. Stanford HAI's 2025 AI Index found that querying a model scoring at GPT-3.5 level on MMLU cost $20.00 per million tokens in November 2022 and $0.07 per million tokens by October 2024 — a drop of more than 280 times in about eighteen months. The 2026 edition of the same report notes that performance on SWE-bench Verified, a coding benchmark, went from around 60% to near 100% in a single year.
Now imagine writing a chapter with a pricing table in it. Or a capability table. Or a paragraph beginning "current models struggle with."
The three that survived share one property: their subject is a method rather than an interface. Evaluation methodology does not expire when a provider renames a model. Neither does data drift, and neither does the argument that you should measure a system before you tune it. That is the entire filter, and it is the filter I would apply to any AI book published next month.
| Rank | Book | The production problem it answered for me | Skip it if |
|---|---|---|---|
| 1 | AI Engineering — Chip Huyen | How to decide whether generated output is good, before shipping it to a user | You never call a foundation model in anger |
| 2 | Designing Machine Learning Systems — Chip Huyen | What changes silently underneath a deployed model, and how to notice | You want LLM-specific recipes; this predates them |
| 3 | Designing Data-Intensive Applications — Kleppmann and Riccomini | State, logs, idempotence and everything an agent run needs to survive a crash | You want quick answers; it rewards slow reading |
| 4 | Release It! — Michael Nygard | What a fallback chain has to do when a provider is up but useless | You have never operated anything with a dependency you do not control |
| 5 | Build a Large Language Model (From Scratch) — Sebastian Raschka | Nothing I shipped. It changed how I think, not what I built | You have a deadline this quarter |
Which AI engineering book should you read first?
AI Engineering by Chip Huyen, published by O'Reilly in January 2025. It is the only book I have found that treats building on foundation models as an engineering discipline with its own failure modes, rather than as ordinary software development with prompting bolted on the side.
The structural tell is the table of contents. Chapter 3 is evaluation methodology and chapter 4 is evaluating AI systems. Prompt engineering is chapter 5. Putting measurement two chapters ahead of the thing everyone actually wants to read about is an argument, and it is the correct one.
Here is the problem it addressed for me. Codelit's pipeline turns one sentence into a schema-valid graph of nodes and edges, and describing the JSON schema in the prompt got me valid output about 80% of the time. Schema enforcement plus a validation loop pushed that past 99%. I got there by grinding, months of it, and the book frames the whole class of problem in a way that would have saved me most of that: stop asking the model more nicely, start constraining and measuring.
What I have never used is chapter 7 on finetuning and chapter 8 on dataset engineering. I do not finetune. Two chapters out of ten, in a book of 532 pages, that I paid for and will probably never open, which is worth knowing before you buy it expecting every page to earn its place.
What does a machine learning book from before ChatGPT still teach you?
Designing Machine Learning Systems, also by Chip Huyen and published by O'Reilly in June 2022, teaches data distribution shift and production monitoring. Those two subjects are exactly what breaks an LLM feature six months after launch, and almost nobody building agents today has read them.
The relevance is not obvious until you route across providers. Codelit sends every request down a fallback chain across 11 providers, which means the model answering a given prompt changes without the prompt changing. A provider deprecates a version. A free model gets swapped in the pool. Your input distribution held perfectly still and your output distribution moved anyway.
That is drift. It has a literature, and the literature predates the thing you are building. The chapters on monitoring are written for recommender systems and apply, almost line for line, to a retrieval pipeline.
The book is weaker on anything specifically generative, because it could not have been otherwise in 2022. There is material on feature stores you will never open. Read it for the operations half.
Should you build a language model from scratch before you ship one?
No, not if you are shipping this quarter. Sebastian Raschka's Build a Large Language Model (From Scratch), published by Manning in October 2024, walks you through implementing a GPT-style model in PyTorch step by step, from tokeniser to finetuning. It is very good at what it does. What it does is not your job.
This is the entry every other reading list gets wrong. Roundups are additive by nature: each book is excellent, each earns a place, nothing is ever a bad use of your evenings. That is not true. Evenings are the scarce input, and telling an application engineer with a launch date to go implement multi-head attention is telling them to spend three weeks acquiring an intuition instead of a feature.
The intuition is real, though, which is why the book is on the shelf rather than off it. Working through the attention implementation changed how I write prompts, because I finally understood what a context window physically is rather than treating it as a mysterious quota. That is worth something. It is worth it later.
Which books that never mention foundation models did the most for my AI product?
Release It! and Designing Data-Intensive Applications. Both of them, and it is not close. The reliability problems in an LLM product are ordinary distributed systems problems wearing unfamiliar clothes, and they were documented properly years before there was a model API to break.
Take the router. Codelit's health monitor pings every provider on a 60-second interval, and a provider that recovers takes 10% of traffic for five minutes before full restoration. I did not invent that. It is a circuit breaker with a half-open state, and Nygard catalogued the whole family — timeouts, bulkheads, the difference between failing fast and failing slowly — through the real outages that produced them. The novel part of my system was which vendor sat behind the breaker. The pattern predates every provider in the chain.
Kleppmann earns his place the moment anything runs longer than one request. An agent workflow that calls tools and can die halfway through needs an append-only run log, derived state you can rebuild, and idempotent retries, because exactly-once delivery is a promise nobody can keep. The second edition, co-written with Chris Riccomini, arrived in March 2026 and folds in a decade of change, so older chapter references no longer line up.
What do none of these books cover?
Three things, and they are the three that cost me the most time. Provider fallback as an operational discipline, cost accounting per generation, and prompt regression tests that gate a deploy. Each has a nearest neighbour in print, and in every case the nearest neighbour names the problem without solving it.
| The gap | Closest thing in print | What you still have to work out |
|---|---|---|
| Multi-provider fallback | AI Engineering, chapter 10, has a step called "Add Model Router and Gateway" | Health states, probation windows, per-provider prompt variants, and treating a 200 response with bad content as a failure |
| Per-generation cost accounting | AI Engineering treats cost as an evaluation criterion in chapter 4, alongside latency | Tagging every generation with provider, model, complexity tier and user tier so the total can be reconciled against what you charge |
| Prompt regression testing | Chapters 3 and 4 give you evaluation methodology in general | A versioned prompt suite in the repository, running in continuous integration, failing a build when a prompt edit regresses output |
The pattern here is that all three are operations problems, and operations books get written after the practice has stabilised. Teams were building deployment pipelines by hand for years before Humble and Farley published Continuous Delivery in 2010 and gave everyone a shared name for it.
The cost one is the gap I feel most. I built a cost estimator that prices an AWS architecture before it exists precisely because engineers have no intuition for what infrastructure costs until the invoice lands, and inference has exactly the same problem one layer up. Streaming makes the bookkeeping harder still: once you are rendering a response before the JSON closes, a user can abandon a generation halfway through, and every token that already streamed is a token you paid for. Codelit's AI spend runs about $0.003 per free-tier generation and $0.02 per Pro generation, and knowing those two numbers is what makes the pricing page a decision rather than a guess. No book told me to measure that. Google's SRE book comes closest in spirit, since an error budget is the cleanest available framing for how often a bad generation is acceptable, and it is talking about availability rather than quality.
What should you read first, based on what you are building?
Read against your current problem rather than in a canonical order, because the wrong book at the wrong time is how people end up owning five unread technical books. Find your row.
| What you are building | Read first | Read second | Leave for later |
|---|---|---|---|
| A single feature that calls a model API | AI Engineering, chapters 3 to 5 | Release It! | Build a LLM (From Scratch) |
| A retrieval pipeline over your own documents | AI Engineering, chapter 6 | Designing Machine Learning Systems, on drift and monitoring | Designing Data-Intensive Applications |
| An agent that calls tools and can fail halfway | Release It! | Designing Data-Intensive Applications, on logs and idempotence | AI Engineering, chapter 7 onward |
| Routing across several providers | Release It! | AI Engineering, chapter 10 | Everything else |
| A serving or finetuning stack you own | Designing Machine Learning Systems | AI Engineering, chapters 7 to 9 | Release It! |
| A career move into AI engineering, with time | Build a LLM (From Scratch) | AI Engineering, start to finish | Designing Data-Intensive Applications |
The last row is the only one where the from-scratch book goes first, and it is there because career changers are buying understanding rather than velocity. Different purchase entirely.
How to tell whether an AI book will still be useful in two years
Three tests, and they take about ninety seconds in a bookshop. Open to a random page and count the model names — if the paragraph collapses when its examples are renamed, so does the book. Check whether the measurement chapter comes before the prompting chapter, because that ordering reveals what the author thinks the work is. Then ask whether the chapter would still make sense if every provider changed their API next Tuesday, which several of them will.
My architecture shelf has a dozen books on it and my AI shelf has three. That ratio is not a judgement about the field, it is a statement about its age: distributed systems has been an engineering discipline for fifty years and this has been one for about three. More good books are coming. In the meantime the transferable half of the job — failure modes, state, measurement, cost — is already documented to an extremely high standard, just filed under a different heading.
If you want the rest of what I actually keep and re-read, including the architecture and management shelves, it is all on the bookshelf, skip-it-if notes included.
Questions people actually ask
- What are the best books for AI engineers?
- For engineers building applications on models they did not train, three hold up. AI Engineering by Chip Huyen is the first one to read, because it treats evaluation as the foundation rather than an afterthought. Designing Machine Learning Systems, by the same author, covers data drift and production monitoring better than anything written since the LLM wave. Build a Large Language Model From Scratch by Sebastian Raschka is worth it only once you have shipped something and want to stop treating models as magic.
- Is Chip Huyen's AI Engineering worth reading?
- Yes, and it is the one to buy first if you buy one. O'Reilly published it in January 2025 and it is organised around method rather than around any provider's API, which is why it has not aged in the way most AI books do. The evaluation chapters come before the prompt engineering chapter, and that ordering is the whole argument. The finetuning and dataset chapters are the least useful if you never train anything.
- Should I read Build a Large Language Model From Scratch?
- Not if you are trying to ship something this quarter. Sebastian Raschka's book, published by Manning in October 2024, walks you through implementing a GPT-style model in PyTorch from tokeniser to finetuning. It is excellent and it is a study project, not a manual. Read it after you have shipped an AI feature and keep getting surprised by context windows, not before you have written your first prompt.
- Why are there so few good books on AI engineering?
- Because most of the field's facts expire faster than a publishing schedule. Stanford's 2025 AI Index found the cost of GPT-3.5-level inference fell from twenty dollars per million tokens in November 2022 to seven cents by October 2024. A manuscript finished today reaches shelves many months later. Any book organised around prices, model names or SDK signatures is wrong before it is printed, so only the method books survive.
- Do software engineers need machine learning knowledge to do AI engineering?
- Less than people assume. If you call foundation models over an API, the job is mostly evaluation, structured output, retrieval, routing and operations, and none of that requires training a model. What does help is understanding what a context window physically is and why a model produces different output for the same prompt, which is why one theory-heavy book earns a place on the shelf even though it teaches nothing you will ship.
- What should I read after Chip Huyen's AI Engineering?
- Something that is not about AI. The reliability problems in an LLM product are ordinary distributed systems problems in unfamiliar clothing, and they are documented far better in Michael Nygard's Release It! and Martin Kleppmann's Designing Data-Intensive Applications than in anything on the AI shelf. Timeouts, circuit breakers, idempotence and append-only logs all arrive unchanged in an agent pipeline.