This is a mix of code and explanations to complement my series of posts for SourceCon.com leading up to the SourceCon Austin conference in Sept. 2017.
If you have access to the SourceConProgrammers repository, I am generally following the material they are covering, but also throwing in some extras of my own.
It's easiest if you start by reading the PowerPoint file in this repo first, and then read the aforementioned SC posts at https://www.google.com/search?q=site%3Asourcecon.com+gutmacher+(%22how+to+learn%22+OR+%22sourcecon+partners+with%22)&rlz=1C1GCEB_enUS963US963&newwindow=1
P.S. You may find this earlier step-by-step presentation I did at SourceCon Denver in Oct. 2014 which was prequel to the all-day 2017 event: https://www.youtube.com/watch?v=UXuOfmqye_Q&list=PLh9V7buk0vuDxX9G_acEyuZ4VVMa7b51v