⟵ Home

My books

Here are the books that I have written. I write books so that everyone can learn from what I know and so that other people don't have to write them.

The Apollo Handbook

This book is about how we can approach building a frontend application using a combination of React, Next.JS, TypeScript, GraphQL, Apollo, and GraphQL Code Generator. These tools are a winning combination for a frontend stack.

Joy of Elixir

Joy of Elixir is a gentle introduction to programming, aimed at people who already know some things about computers.

This book will teach you the core concepts of the Elixir programming language in a fun and enjoyable way. If you're completely new to programming and you want to learn how to make a computer do things using the power of programming and you want to experience some joy while doing it, then read this book.

Active Rails

Active Rails guides you through building a fully-featured Rails 6 application, teaching you best practices about Behaviour-Driven-Development along the way.

Multitenancy with Rails

Multitenancy with Rails teaches you super neat tricks about Ruby, Rails and PostgreSQL while you build a multi-tenanted, Software as a Service, Ruby on Rails application. Works on Rails 4 and up.

This book is what I'd consider an "intermediate" Rails book. It's something that you would read after finishing Rails 4 in Action, so in a way Multitenancy is a sequel to Rails 4 in Action.

This book uses Twist -- an app I wrote from scratch -- as the basis for the work done in the book.

(This was my first foray into self-publishing. It went pretty well.)

Maintainable Rails

Have you felt the pain of using Active Record on a large codebase? How about messy controllers? Read this short guide on how to improve a Rails application's structure by exploding its responsibilities into small classes with their own unique responsibilities. Starring rom-rb and dry-rb.

I wrote this book on the back of my near decade-long experience with Rails and it was a really fun experience to work out how to build a Rails app without Active Record. I hope others find it just as fun too. Maybe this book will start a movement?

Toy Robot

The "Toy Robot Test" is a common interview exercise for new programmers. This short book will take you through how to implement it in Ruby in a BDD-style, with some great explanations and imagery along the way.

This book is designed to give people unfamiliar with testing an easy-going introduction to writing code from a test-first approach.

Toy Robot: The Elixir Version

The "Toy Robot Test" is a common interview exercise for new programmers. This short book will take you through how to implement it in Elixir in a BDD-style, with some great explanations and imagery along the way.

This book is designed to give people unfamiliar with testing an easy-going introduction to writing Elixir code from a test-first approach.