I am a Software-Engineer with a knack for closures, algebraic data-types, pattern-matching, static typing, and a good module system. I strive for clean, composable code and intuitive and responsive user interfaces.
I am currently located in Zürich and would be availabe for hire. I have an English as well as a German CV available upon request..
This is a selection of personal projects I have worked on, either during my University time or in my spare time. Some of them are available on GitHub, and will be linked accordingly.
Grammar-based Modeling of Floor Plans
Master’s thesis at ETH Zürich under Prof. Dr. Markus Gross and Pascal Mueller. Rule-based generation of floor plans on the basis of shape grammars. Implemented in OCaml and OCS scheme. LablGTK GUI with live rendering of production shapes using LablGL. Integrated scheme REPL for debugging and outputting SVG files.
Integrating EWA Surface Splatting into OpenGL
Semester thesis at ETH Zürich under Prof. Dr. Markus Gross and Tim Weyrich. An OpenGL extension for the Mesa graphics library to support a point-based primitive (splats). Adapted Quake 2 source code to demonstrate extension. Results published in ‘07 SIGGRAPH paper.
A semester project I did during my years at ETH Zürich for the “Advanced Image Syntheis” course. In my youth, I dabbled in designing levels for Doom and Quake (when I was not just playing the games). However, none of my levels ever made it to fruition. But the idea that I should be able to generate the geometry using code rather than by hand stuck.
Having worked with OCaml for a while and being somewhat baffled by the limitation of integers to (N-1) bits on N-bit platforms, I became curious about how the OCaml runtime represents values internally. So I wrote this small library to dump the object graph as either S-expressions (using the pretty-printing facilities provided by the
Formatmodule) or as Graphviz .dot files.
Annoyed by the fact that writing C bindings for OCaml is a tedious undertaking, I decided to write an foreign-function interface generator for OCaml. Currently, the project contains an abstract syntax tree for C and a corresponding pretty printer. There is also the basic definitions of the Zimt language, an embedded DSL. The Zimt language is a somewhat simplified version of C, based on the idea that it should be easy to manipulate fragments of Zimt code using OCaml. This project is my playground for all the new and fancy features in OCaml like GADTs and first class modules.
In my spare time I cruise around Zürich on my longboard and take photos of structures I find intriguing. On rainy weekends I very much enjoy having a few friends over for dinner and a round of boardgames.