I borrowed this one from a friend; he said: "It gets pretty mathy toward the end." I think he meant in Part IV ("Theory") but "it gets mathy" happened for me on like... page 2. Which is fine because we're talking about feedback control loops which need to make continuous inferences about the state of an observed system &c. but... heads-up: there's some calculus.

Which isn't to say that you can't get anything out of this book if you are not yourself "mathy". Janert does an excellent job of explaining the principles behind feedback control (esp. w/r/t/ applying them to computer systems and software problems), and by the end of the book you should have at least a good enough understanding of the types of questions to be asking when assessing a system that you expect to put under some kind of feedback control mechanism. In other words, you may not know how to do the math ("yet!") but you'll know to ask things like: "If I increase servers, I should see a decrease in... overall latency?"

The other thing to take away from this is that Janert knows that despite the math, applying the feedback control principles is as much an art as it is a science. It's hard to get these exactly right on the first try, and it's expensive to experiment in production. So he also provides a bunch of simulation code to help bootstrap you.

Lastly: the colorized graphs are a nice touch.

As someone else has mentioned, this is a difficult book to review. There are four parts in it:

1. Foundations

This part is an easy high score, presents the information very well and is easy to digest. It sells you on the importance of having proper feedback systems, what they can or can't do, and good general pointers.

As someone with limited math knowledge and only a general idea of feedback control, this was a great read.

That one could be an easy 4/5 or 5/5 for me.

2. Practice

This gets a bit tougher. There's a decent jump in there towards theory, specifically once the book tackles the topic of tuning controllers, transfer functions, and so on. Many formulas or concepts are mentioned and used without being properly introduced or explained.

The author simply assumes the reader knows about these concepts, which was sadly not the case for me. This made the chapter progressively harder to grasp. Would probably rate a 3/5 on its own.

3. Case Studies

Case studies section is also an easy one to get into. The good part is that it's again more approachable, has some code examples, and so on.

On the other hand, the examples chosen are hardly applicable to practical cases. For example, the one on ad selling mentions pacing, but real world ad selling has to juggle requirements with cost.

The example about server scaling recommends having stand-by servers to simplify the control system when you need to spin up new instances. But if you're paying for a server (or an instance) just to have it sitting idle, why not just have it in the resource pool already and monitor peak performance vs. resource usage to know when to provision a new one in advance?

In any case, this is minor because those are just that: examples, and the reader knows how to understand that. The bit I find more problematic with this chapter truly is that, as another reviewer puts it, feedback control is an art, and after reading it, I don't exactly feel any more ready to go ahead and tune my own feedback control systems myself. Would possibly rate 3/5 to 4/5.

4. Theory

That chapter was way over my head and I really can't say much about it.

Appendix

The appendix as brief, but at least contained a useful glossary. Of the mathematical concepts I grasp to a decent level, the few pages on complex numbers had their explanation a bit more convoluted than I felt necessary.

---

The author recommends reading sections 1 & 3 together, and possibly 2 & 4 after that.

Overall it's a decent read, but I keep feeling like it's little more than intro material, and I would both need more basic material (to better grasp basics) and more advanced material (to properly apply concepts).