Ben Sandofsky Builds Apps.

I've shipped software for over a decade, with over four years at Twitter. I advise startups, and I was a tech consultant on silicon valley. I teach iOS at CodePath, helping senior engineers jump into mobile.

For more details, check out my projects page.

Recent Writing

  • The Trouble with Manager ObjectsThe first time I look at a legacy project, I scan for warning signs. I’ve covered singletons, excessive observers, and today I’ll talk about “Manager” classes.
  • The Design Flaws of KVOIn my last post, I explained why you should prefer delegates over observers. The former encourages a tree-like data flow, while the latter leads to a cat’s cradle.
  • Delegates vs ObserversA well structured app consists of simple objects with well-defined responsibilities talking to each other. When you design an object, you might think of an object’s properties, and the actions they take, but it’s just as important to decide how they’ll communicate.
  • Agility Follows an S-CurveThe worst question in software is, “When will it be done?” because it never correlates with, “When should we ship?”
  • The Sin in SingletonSingletons are not an anti-pattern, but they are an abused pattern. They’re popular among beginners because they’re convenient. Down the line they add complexity and cause maddening bugs.