Writing backend APIs in a functional programming style by James Lamine