I actually learned a great deal from this post by @ThinhDinh
There are some really great tips in here and best practices to follow.