This just in: The Haste compiler website launches, with docs, a Google group and a Haste browser shell!

Hi, I'm a PhD student with the functional programming group at Chalmers University of Technology, with a particular interest in compilers. I also like natural languages, psychology, anthropology, history and other subjects relating to human interaction.

I have an MSc in computer science from Gothenburg University and JLPT 2 certification (short for Japanese Language Proficiency Test). I write software and translate manga for fun.

If you're interested in what I'm up to, my Google+ stream or GitHub repo are your best bets. You can also have a look at my CV, though the skills, academia and projects sections of the site really give a more detailed picture unless you're specifically looking for previous positions or specific dates.

This is where I keep my writing.
Sometimes I write code for fun. A selection of it ends up here. Everything listed here is written in Haskell, unless otherwise specified.
  • Haste, a compiler for turning Haskell into efficient Javascript. It's built on top of GHC and was developed as part of my MSc thesis.
  • threefish.js, a Javascript implementation of 256 bit Threefish and Skein.
  • Himitsu, a password manager, analyzer and generator using strong encryption.
  • A compiler from linear logic to Javascript.
  • Shellmate, an EDSL for writing platform-independent shell scripts using Haskell.
  • threefish, Haskell + C implementation of the Threefish block cipher and the Skein hash function built on top of it.
  • Crepes, a simple utility for keeping track of time spent on various projects. Intended for PhD students needing to keep track of and report their time spent on departmental duties.
  • DHEN user script; replace personal pronouns by the universal "hen" on
  • Ye Olde Shoppe, a lightweight item shop plugin for Minecraft. (source)
  • Erlbot, an IRC bot written in Erlang. Written as an exercise to get my feet wet with the language, it successfully avoids any semblance of best practices or conventions such as generic servers or supervision trees.
  • rfinder, a tool for finding clusters of resources in Minecraft maps.
  • Lambdascript, an experimental compiler for turning a subset of Haskell into efficient Javascript. It contains a complete compilation pipeline, from parsing to code generation, and was developed as part of my BSc thesis.
  • Fursuit, a small FRP library specifically intended to run in environments where concurrency is not available (such as web browsers).
  • typhpist, a PHP library for generating somewhat type safe HTML. Ridiculously verbose.
  • dpress; generate random texts from a seed corpus - hours of fun!
  • Glosie the second client-side web application ever written in Haskell
  • footnote.js, a small script that lets you add footnotes to HTML pages by adding <fn> tags to your text. It's probably a good idea to use footnote.css as a starting point for styling it.
  •, a blog application written from the ground up in Haskell. Contains my travel diary and more.
  •, a website I did for a well digging business in central Sweden.

I possess some useful skills, mainly in the field of software development.

  • Software development for web applications, embedded systems, servers and desktops, using functional, object-oriented, concurrent and procedural languages, such as Haskell, Erlang, Java, PHP, Javascript, C++, C#, C, VHDL, assembly, SQL, etc.
  • Development of compilers and interpreters, for and in several languages, both functional, procedural and object oriented.
  • Development of concurrent and parallel software at various different levels of abstraction.
  • Penetration testing and security oriented software development, including development of proof-of-concept exploits.
  • Familiarity with various forms of testing, formal specification and verification.
  • Graphics programming; experience mainly being with OpenGL/GLSL.
  • Network programming using HTTP, SMTP, TCP, UDP, CAN, Modbus, etc.
  • Some familiarity with Android development.
  • Administration of and software development for Linux-based systems.
  • Fluency in Swedish and English, decent knowledge of Japanese and a basic knowledge of German; basic proficiency in textual translation.

I translate stuff from Japanese, mainly into English. Among other things, I've worked on the English translation of the Ubunchu! manga, from chapter 4 and onward.

I also have JLPT2 certification. Mostly for bragging rights, since certifications in general are pretty pointless.