As programmers we are used to solving problems. Usually these problems are technical problems such as working out how to read lots of data in a memory efficient manner or working out how to deal with a background task in a thread-safe way. We are good at thinking of solutions to these problems and w... [More]