Skip to Content


I’ve written several books. All titles are links to the purchasing page.

Practical TLA+

In my opinion, the best book available on learning formal specification. From the page title:

Learn how to design complex, correct programs and fix problems before writing a single line of code. This book is a practical, comprehensive resource on TLA+ programming with rich, complex examples. Practical TLA+ shows you how to use TLA+ to specify a complex system and test the design itself for bugs.

You’ll learn how even a short TLA+ spec can find critical bugs. Start by getting your feet wet with an example of TLA+ used in a bank transfer system, to see how it helps you design, test, and build a better application. Then, get some fundamentals of TLA+ operators, logic, functions, PlusCal, models, and concurrency. Finally, you’ll put what you learn into practice with some working case study applications, applying TLA+ to a wide variety of practical problems: from algorithm performance and data structures to business code and MapReduce. After reading and using this book, you’ll have what you need to get started with TLA+ and how to use it in your mission-critical applications.

I can offer discounts and samples to people who contact me directly.

Computer Things, 2020

A compilation of all Computer Things newsletter essays in 2019 and 2020, including essays that were for subscribers only. 98,000 words and 330 pages on the history and culture of software engineering. Topics include:

  • How learning math helps with programming
  • Why “message passing” was a genuine innovation
  • How we all misunderstood Donald Knuth’s “Literate Programming” paper


Four essays that I abandoned. Written as a test of self-publishing and a way for people who asked to donate to me, probably not interesting unless you’re a big fan of my work.