This post originally contained my solution to the challenge posted here. I moved those solutions inside the post itself, under the "Solution" subsections.

Feedback

Feel free to reach me on Twitter if you have questions. The GitHub issues page is the best place to submit corrections.