[UPDATE:] This blog post has been converted to a Doc page and has had some updates since this post was published.
Table of contents