Me at my computer
Hi, my name is Jon, and I’m test-infected.

Welcome to Quality Coding: “Tools, tips & techniques for building quality into iOS development.” We’ll cover various issues around working quality into our Objective-C code, with an emphasis on unit testing and Test Driven Development (TDD) for iOS.

If you’ve ever wondered if TDD is practical or even possible for iOS apps…
If you wanted to learn TDD but found only trivial examples and no clue of how to approach real-world code…
If you tried TDD for iOS but got stuck without getting very far…
…I’ll help you out. Subscribe below, and I’ll send you the Xcode code snippets I use to speed my own unit testing development.

My best posts

Here are some starting points for exploring my blog:

You can also check my archives for every post I’ve written, or use the search field on the right to find other posts you might like.


“Jon is one of those rare engineers who is passionate about the art of programming. You can tell when he waxes poetic about TDD, doing things right, and even by the books on his shelves.”

“Jon generates some of the most readable, maintainable and reusable code that I’ve ever encountered. Many of the idioms and strategies that I learned from Jon are still essential components of my daily coding tasks.”

More about me

I’ve been writing unit tests since 2001, and have been doing iOS development since 2010. I ported Hamcrest (a library of matchers for building test expressions) to Objective-C (OCHamcrest) as well as to Python (PyHamcrest). Lately, I’ve been working on OCMockito, an Objective-C port of the mocking framework Mockito.

I currently work at Facebook. It’s awesome. But this is my personal blog and the opinions expressed here are mine alone.

I’ve also been blogging for a decade: Blog One Another shares my spiritual journey between faith and culture, trying to live into the Way of Jesus (without being a jerk).

Stay in touch

Interested? I’d love to interact with you about how we can “build quality in.” Here are a few ways to stay in touch:

  • SubscribeSubscribe to be updated on the latest blog posts.
  • Comments — Whenever you leave a comment, I get an email letting me know.
  • TwitterFollow @qcoding to join the conversation on Twitter.
  • Email — Feel free to email me through my contact form.

I look forward to hearing from you!


Not entirely dull, and worth reviewing:

Banner image by Mr. Thinktank (license)