I’m Jon Reid, and I’ve been practicing Test Driven Development (TDD) since 2001, and applying it to Objective-C since 2005. I’m the author of OCHamcrest and OCMockito.


Photo courtesy of NSSpain

This blog is focused on “clean iOS code,” with an emphasis on unit testing and TDD. My mission is to help iOS developers create code that is maintainable. Any coder can hack out programs that “work.” But will you be able to easily modify it over many years, or across multiple projects?

That’s why I write on TDD, unit testing, design, tools, and language issues. My goal is to equip you with practical approaches that you can put to work. If you’ve ever been frustrated by fragile code, or interested in unit testing but afraid it would slow you down — then this blog is especially for you.

I try to post once a week. To make sure you don’t miss my newest posts, you can subscribe via email. It’s quick, easy, and you can unsubscribe at any time.

My Top Posts

If you are new to my site, you might want to start with my most popular posts. Here are my top two in each category:


Unit Testing



Language Issues

You can also check my blog’s archive for a list of every post I have written, or use the search field in the sidebar to find other posts that might be of interest.

My Biography

I became interested in programming during junior high school, at the American School In Japan. But I really caught the bug during my 9th grade year, when I lived next to Earlham College. I entered programs from BASIC Computer Games on their PDP-11/70.

Back at the American School In Japan, the computers upgraded from FORTRAN punch cards sent to some mainframe in downtown Tokyo, to Radio Shack TRS-80’s. My friends and I started writing programs in earnest, such as different implementations of Conway’s Game of Life.

I studied computer science at Purdue University. While back in Japan, I met my wife-to-be who, like me, was a missionary kid. We married and went to Japan for three years as Christian missionaries ourselves. I worked in the computer science department of Tohoku Gakuin University in Sendai, where I extended Knuth’s “literate programming” system to handle Japanese text.

I became interested in various ideas that promised to make programming better, such as code generation and verification. But what really caught my attention was something new called object-oriented programming. Back to school I went, this time for a master’s at UIUC. I learned Smalltalk.

My wife & I started raising children and moved to Silicon Valley, where I’ve worked for various companies. A wonderful book about object-oriented design came out called Design Patterns. Hungry for more, I searched the web and found the very first wiki, c2.com. It was filled with discussions about design patterns, discussion of different styles of wiki use, and another new thing called Extreme Programming. I learned about the Extreme practices, including “test-first programming” — later renamed Test Driven Development.

I began teaching on best practices at my work, wherever that happened to be. I wanted to share with more people, so I started this blog. Speaking engagements followed. I am now looking for ways to begin teaching workshops, initially as corporate training.

My Contact Information

You can contact me via email through my contact form, or follow me on Twitter or Facebook.

Banner photo by Rob Sirota Photography