Currently I work at Motorola solutions where I design and write software, mostly in the functional and concurrent language Erlang. I stimulate innovation within Motorola by organising training sessions, hackathons and collaborating with academia. Previously I was a Ph.D. candidate at the University of Kent, and worked at Associated Compiler Experts in Amsterdam. I was born in Soest, the Netherlands. I speak Dutch, English and Danish.
My main interest is in the area of program analysis and transformation. I research and develop compilers, tracers, debuggers, profilers and virtual machines.
The topic of Ph.D. research is to make tracing and algorithmic debugging for lazy functional languages such as Haskell practical and easy to use for real-world programs. My goal is to help programmers to understand their code and locate bugs in a systematic manner.
Previously I worked on analysis and transformation of reducible and irreducible loops, interprocedural optimization of recursive functions and out-of-SSA translation.
I have experience developing in LLVM, the CoSy compiler framework, the Glasgow Haskell Compiler, and Haskell debugging aids Hat, Hood and Hoed. I am most at home with the programming languages Haskell, Erlang and C, but I have experience with other languages and am keen to pick up more.
At the University of Kent I teach logic, logic programming, functional programming, concurrent programming and using Unix, at Master's and undergraduate level.
Hoed is a tracer and algorithmic debugger for the programming language Haskell. To locate a defect with Hoed you annotate suspected functions and compile as usual. Then you run your program; information about the annotated functions is collected. Finally you connect to a debugging session using a webbrowser.
Unlike other algorithmic debuggers for Haskell, no specialized run-time environment or whole-program transformation is required.Libgraph — Store and manipulate data in a graph.
Graphs, analysis of graphs and manipulation of graphs play an important role in the implementation of various research project on tracing Haskell. To make re-use of my work easier this library collects a variety of graph algorithms.LLVM-TURBO — A bridge between LLVM and CoSy.
As part of the research for my Master's thesis I built an experimental bridge that connected the LLVM C compiler with the CoSy Compiler Framework.
After I was hired as part of ACE's Research and Development team I further productised the bridge and even experimented with connecting a Haskell front-end to my bridge. When I left the company to pursue my Ph.D. studies development continued and at HiPEAC 2014 LLVM-TURBO was presented as a commercial product.