News
[Home] [Projects] [Twitter] [Github] [Screencasts]
(Javascript specialist, available for work in Germany, or remotely)
I used to develop typescript-tools, a commandline server and Vim plugin for using TypeScript Language Services (types, jump-to-definition, completion, compiler errors). Others used this to build TypeScript plugins for Emacs and Sublime. Since then, the typescript language services have come with their own server infrastructure, and the landscape of service-based tools has evolved considerably.
In a previous life, I used to be a Haskeller. If you are looking for my old Haskell projects, you'll find most of them via my Haskell Community page.
I also used to be an academic researcher. Many of my older publications and talks are available online.

I am a software toolsmith. I enjoy writing software that helps turning computers into useful tools, with a particular focus on writing tools for other software developers - from development tools all the way to programming languages. I have worked with Javascript/TypeScript (~7yrs/3yrs), Haskell (~14yrs), and more other programming languages than I can remember (past intensively used languages include C ~8yrs, Java, Perl, ...; on smaller scale, I also used languages like Prolog, Lisp, Erlang, ...), starting from way before there was a web (my first languages were Homecomputer Basic and Z80 Assembly). I have been on the web since before the internet archive started, though I've mostly seen it more as a way to distribute content than as something to play around with (so please pardon my lack of fancy design/animations/etc:-).

My private projects tend to be Javascript projects or WebApp-related technology experiments. Their sources are likely to appear on my Github account.

My interests evolve around (declarative) programming languages: language design and implementation, tool development, and programming techniques. Having looked into most of the major programming paradigms, I've more or less settled on a combination of functional and concurrent programming as the main paradigms I like to see supported well, directly in the language design. Logic and object-oriented programming also come in handy as programming paradigms, but language designs built solely around these two tend to be less helpful for general programming.

On a purely technical basis, I have been tempted to stick with Haskell, helping to address its remaining shortcomings. The main reasons for considering Javascript were social in nature, in particular, what I would call momentum: Javascript had the potential to reach more developers and devices -- which has been attracting ideas, tools, experiments, programmer and tool builder activity.

Javascript is not without problems, but it is surprising what one can achieve by focussing on the good parts of the language: out of the box, it supports functional, object-oriented, and aspect-oriented programming. Its main problems are syntax, semantics and APIs that hamper extensive use of functional programming or equational reasoning (instead, it has inherited a focus on side-effects, statement blocks and built-in control structures), and an inertia (the flip side of momentum) that hampers and occasionally misdirects attempts to change the language (none of which are helpful when looking at concurrency support; even functional programming improvements sometimes encounter resistance). It remains to be seen what can be done in terms of improving the Javascript experience by scaffolding it with tool support.

If you are looking for a Javascript coder and tool developer with my background and interests, please get in touch.