His work in programming technology is largely focused on two aspects: the optimisation of functional languages by means of type and effect systems, and type error diagnosis for strongly typed functional languages. He is currently the lead maintainer of the Helium compiler for learning Haskell. Besides these two focus areas, he is also active in programming plagiarism detection, legacy system modernization, and the (soft type) analysis of dynamic languages.