In reply to Joel James.

That's an excellent piece by Tom, every dev should look at that as a starting point.