Andrew’s love affair with computing started early, when his mother bought a Commodore 64 having decided that her son would “get computers”. He did not. He enjoyed the games though.
During high school, Andrew wrote his first computer programs in Visual Basic as part of a mandatory course. After realising that he could make computers do things for him, he programmed his calculator to check his maths homework, and then went back to playing games.
After a year of studying law and business at university, but spending most of his time tinkering with his computer, Andrew decided he might like to tinker with computers for a living. He changed his degree, and began studying computers in earnest, focusing on programming. Starting with an introductory course in Scheme, Andrew moved on to “real” programming languages like C++ and Java; ones with pointers and objects.
Out in industry, Andrew worked across a range of domains, including: games, consulting, transport modelling, and engineering. In doing so he has used a range of technologies, including: C++, Perl, PL/SQL, Java, Ruby, and Haskell. He thinks he still has a COBOL change in production somewhere, but he doesn’t like to talk about that.
After working in industry for a while, Andrew heard about the promises of functional programming. He tried out Clojure, having fond memories of Scheme, and was happy. Until he wasn’t. While working through a bioinformatics course using Clojure, Andrew’s lack of discipline and Clojure’s lack of types burned him, and he decided static typing was a good idea. Having heard people make bold claims about Haskell’s type system, Andrew decided it was worth checking out. He hasn’t looked back since.