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, Haskell, and lots of other programming languages, starting from way before there was a web.
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. Occasionally, 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.
If this sounds odd to you, consider embedded domain-specific languages and language support for building abstractions: functional abstraction seems to do very well for the latter, making functional languages good hosts for embedded-DSL-based development. Also, object-oriented and logic programming can be supported reasonably well as embedded DSLs, while concurrent programming needs language support, and functional programming without good functional abstraction is just painful.
On a purely technical basis, I have been tempted to stick with Haskell, helping to address its remaining shortcomings. The problem is that this ignores social rationales, in particular, what I would call momentum: so many developers have been using Java and Php that their needs have driven the development of frameworks and tools to ease some of the technical disadvantages of the language (the proliferation of frameworks and complexity of tools have their own disadvantages). However, there is a storm brewing here, with Javascript having the potential to reach more developers than Java or Php ever had -- and its momentum is building rapidly.
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 a syntax and APIs that hamper extensive use of functional programming, semantics and APIs that hamper equational reasoning, and an inertia (the flip side of momentum) that hampers attempts to change the language (none of which are helpful when looking at concurrency support).
It remains to be seen what can be done in terms of improving the Javascript language or scaffolding it with tool support (ES6 modules and classes, as well as types can be supported by transpilers, so 2013 will see many of these features used in anger), and this is where I would like to focus my efforts in the immediate future. So, if you are looking for a Javascript coder and tool developer with my background and interests, please get in touch. If you are developing Javascript tools yourself, or want to stay up to date in that area, you want to check out our new js-tools group and its list of resources.