About
Summary
I build software that solves complex problems. The tools I produce are used to help people make better decisions subject to many different factors. I strive to ensure that the tools I produce are a good fit to the user’s requirements; nothing is optimal if it solves the wrong problem.
I have spent my professional life alternating between academia and industry. This has given me an interesting perspective on the the suitability of state-of-the-art research to solving real-wold problems. This has driven my academic work, which in turn provided inspiration when solving new industrial problems.
I have been programming for over 20 years. I primarily program in Java and C/C++, although I have experience with Haskell, Prolog, Perl, PHP, HTML, CSS, and back in the day, assembler and basic.
I have used the ILOG (now IBM) CP optimization tools for about 7 years (and am a certified ILOG trained user, followed by a PhD under an ex-ILOG developer). I have also developed applications using constraint-based local search, using an in-house toolkit. In many cases, I have developed new search algorithms and constraints.
I have recently submitted (2009) my PhD dissertation which addresses the subject of the ease-of-use of optimization technology. It applies machine learning methods to scheduling algorithms to produce robust high quality results automatically. The methods are general and I believe they are applicable to many different problem domains.
Specialties
Themes: optimization, scheduling, operations research, artificial intelligence, machine learning, constraint programming, manufacturing, logistics, vehicle routing, crew scheduling. Sectors: manufacturing (steel, textile, automotive, print and so on), emergency medical services (real-time deployment of ambulances, planning analytics), oil and gas (rig fleet scheduling, support resource scheduling), renewable energy (smart environmental control, power generation scheduling)