https://medium.com/@warrenhenning/a-software-engineers-adventures-in-learning-mathematics-62140c59e5c