I'm a software engineer with a particular interest in language-oriented software development. The vision for software engineering that I share with many other researchers is to one day reach a point where it becomes so easy to develop small, focused Domain-Specific Languages (DSLs), that the average programmer will regard this as the normal thing to do; given a problem to solve, develop a suitable language in which you can model precisely what you want in your problem domain, then develop a model transformation to map this solution idea to a chosen solution domain.
The research field of model-driven engineering is all about realising this vision, and I've specialised and focused on model transformations in general, and (model) consistency management in particular. Consistency management encompasses a means of specifying consistency over models, and being able to: generate consistent models, check if a set of given models are consistent, and restore consistency for a given set of possibly inconsistent models. The community currently working on all aspects of consistency management refers to the area as bidirectional transformations (bx). The reason I'm particularly interested in bx is that I can only really advocate the proliferation of numerous DSLs (and thus models in these DSLs), if we can guarantee that consistency can be restored and maintained as required in an efficient and effective manner. My favourite hammer for working on bx has been and is still graph transformations (which is also just basic category theory). A particularly simple flavour of graph transformations can be expressed using Triple Graph Grammars (TGGs), and I've spent a good time of my life as an active researcher thinking about and extending the TGG formalism.
I strive hard to be a balanced researcher, and I have made contributions towards developing the formal theory of TGGs ( , , , ), as well as embodying this theory in practical tools you can trust and actually (want to) use ( , ). I also try to be as methodic as possible, and have contributed to systematically comparing the diverse approaches to bx ( , , , ), as well as developing techniques towards the reproducible engineering of quality bx solutions ( , , ). Please refer to my Google Scholar profile for a complete and up to date list of publications.
I enjoy teaching and take great joy in preparing engaging slides and great learning material. Here is a brief overview of courses that I have prepared and held in the past. Please contact me directly if you would like to have access to material that I have not yet (or cannot) make freely available online.