To get a hot-button topic out of the way, I was surprised by the proposed approach to dynamic optimization. Instead of using dynamic programming (DP), the author takes advantage of specific problems' linearity and solves "flattened out" linear programs, optimizing decisions in all states - e.g. in all nodes of a state-transition lattice - in one go. It is not clear what is gained in exchange for the resulting loss of generality; "curse of dimensionality" is mooted, but this argument is never developed, and DP dismissed in a single paragraph.
Looking over Parts I-II - and leaving out the "applications" Part III: Chapter 1 gives a broad overview of risk management. Chapter 2 goes on to risk measurement, presents risk measures such as return variance, VaR, CVaR, etc. and discusses CAPM for equities, and duration and convexity for FI; factor models are covered, and a PCA-decomposition-of-yield-curve exercise shown. Chapter 3 describes mean-variance portfolio optimization, and Chapter 4 discusses immunization and dedication. (Multi-period problems both, but with a one-time decision). Chapter 5 moves onto dynamic optimization, introduces "scenario optimization" and shows examples of relevant objective-function/constraint-set combinations. Chapter 6 presents dynamic portfolio optimization - with intertemporal constraints - and "stochastic programming"; in-depth examples are provided in Chapters 6-8. Chapter 9 addresses generation of scenarios.
The book is not too technical - master's, not PhD-student level, I'd say; definitely not another Meucci - which I think is the best for practitioner audience. Readers who wish to go further can make use of extensive, commented chapter bibliographies - and those wishing to get their hands dirty and actually get some numbers out can shell out $80 on the companion GAMS-aided book. (In my opinion, a pain and the albatross of this combo - which could have been something like Brandimarte's text).
An original and well-written book that deserves a wider audience. (Too bad the publishers can't even be bothered to enable "Search inside"). Do take a look.