This little compiler book with the cute cover does what it claims to do: it teaches you enough practical tokenizing, parsing, and parser combinators (very cool) to generate an abstract syntax tree (AST) for a practical subset of TypeScript (itself a superset of JavaScript) and then generate ARM 32 assembly language from the AST.
What I like about the book is that it gives very brief theoretical overviews (often just a paragraph or two) for a subject and then jumps immediately into practical examples. This book does not waste your time!
You will absolutely learn how to make a two-pass (generate AST, emit assembly) compiler that works. You will learn enough ARM assembly to understand what the compiler is doing. You will even learn how to make a simple garbage collector for your applications (probably the biggest chunk of explanation in the whole book, but does not overstay its welcome).
What I like less is that it is essentially a tour of a complete compiler project - it feels as though half of the body of the book is blocks of code. Some of it is (necessarily) repetitious as many programming operations tend to be similar or variations on a theme. There could have been some more breaks to catch our breath and summarize what we'd just covered. There were also quite a few grammatical and spelling errors (it's a self-published work), but I did not find these too distracting.
I think Keleshev has a real talent for compact, lucid explanations and I hope he continues to write more technical books like this! I learned a ton of great stuff from this book and I think most developers from a similar background will too.