About Quality Coding

You’re already a successful iOS developer. You’re able to create apps and ship them.

But the older the code gets, the harder it is to maintain. New features aren’t as easy to develop; the code seems to resist change. You’re spending more time fixing bugs than you used to.

Sometimes there’s a call to take existing code and reuse it. This might be in a new target, such as a share extension. Or it might be in a new project altogether. This sounds easy to the product owner, but you find it’s actually quite hard.

Does this sound like you?

  • Is your codebase becoming easier to manage? Or harder?
  • Are there sections of the code you’re afraid to touch?
  • Are you free to refactor ruthlessly? Or does the code itself resist attempts to “respond to change,” making it hard to be agile?

If you feel your code is becoming brittle and harder to work with, you’re not alone.

I know how you feel

I’ve been in those situations. I was on a team responsible for maintaining a touchy framework used by the rest of a Fortune 100 company. Successful changes became harder and slower. Eventually, the entire team was laid off and the framework was replaced.

At each new job, I’ve been confronted by code that was tangled together.

But things can be different

In the midst of chaotic code, I began carving out areas of safety:

  • I learned about Object-Oriented Design.
  • I started practicing Test-Driven Development (TDD) and Refactoring in 2001.
  • I’ve been applying TDD to Objective-C since 2005 — first on macOS, then on iOS.
  • Now I’m doing TDD in Swift at another Fortune 100 company.

All you need is a guide

I would like to be your guide, helping you bring order to your codebase, so that you can sleep better at night.

You don’t have to be overwhelmed. I’m here to help you create iOS code that is maintainable over the long haul. My goal is to equip you with practical approaches that you can put to work. I want you to to experience greater effectiveness, and rediscover the joy of coding.

My name is Jon Reid, and this is Quality Coding.


Book coverI’m the author of iOS Unit Testing by Example: XCTest Tips and Techniques Using Swift.

I’m here to help iOS developers create Quality Code. Any coder can hack out programs that “work” at first. 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, architecture & design, project structure & language, and tools.

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.

My blog posting frequency is down because I’m busy writing my book. But make sure you don’t miss my newest posts by subscribing via email. It’s quick, easy, and you can unsubscribe at any time.



I’ve spoken at the following conferences and meetups:

  • Swift by Northwest 2018
  • Next Door Conf 2018
  • Silicon Valley Engineering Leadership Community (2018)
  • Swift by Northwest 2017
  • Silicon Valley Code Camp 2017
  • CocoaConf Chicago 2017
  • try! Swift Tokyo 2017
  • CocoaConf San Jose 2016
  • #Pragma Conference 2016
  • MCE^3 (2016)
  • CocoaPods Test Jam (2014)
  • CocoaConf San Jose 2014
  • NSSpain 2014
  • iOSDevUK 2014
  • eBay Tech Talk Berlin (2014)
  • Mobile Central Europe (2014)

I’ve collected a page with all my recorded conference talks.

Jon Reid speaking in Spain

Photo courtesy of NSSpain

Jon Reid teaching about Model View Presenter

Photo courtesy of Natasha Murashev @NatashaTheRobot


Training & Coaching

I teach a TDD for iOS workshop. I’m also available for coaching.

Contacting me

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

Headshot by Rob Sirota Photography
Disclaimer: The posts on this site are my own and don’t necessarily represent American Express’s positions, strategies, or opinions.