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.
GraphQL for Rails Developers
A step-by-step guide for building a GraphQL API within a Rails application. Covering queries, mutations, union types, authentication and integration with JavaScript frontend frameworks. The backend companion to The Apollo Handbook.
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.
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?
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.)
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.