I learned programming while studying Computer Science and Engineering at KTH - Royal Institute of Technology. My main focus became formal methods; my master’s thesis was on defining a small-step operational semantics for multi-threaded Java bytecode and embedding that in a proof assistant based on μ-calculus.

After obtaining my Masters, I continued in academia (still at KTH) with doctoral studies in constraint programming. In particular, I was part of the core team for the constraint programming system Gecode. In 2008 I got a licentiate degree (a degree that can roughly be viewed as a partial doctoral degree), with a thesis titled Techniques for Efficient Constraint Propagation

Since the start of 2011 I’ve been at Tomologic. We make an optimization service for the sheet metal cutting industry. The goal is to both reudce the amount of material as well as the energy and time needed to produce metal parts. The potential to have a large impact on the environment is really inspirational. As a programmer, I get to work with lots of geometry, heuristics, general algorithms, search methods, and much more.

A full CV is also available if you are interested.

Programming languages

I more or less regularly code in the following languages

  • Java
  • Python
  • Rust
  • MiniZinc
  • C++

In addition, I sometimes write stuff in Scala, C, and bash. I’ve previously written code in Mozart/Oz and StandardML. I sometimes read code in Haskell, Ruby, Go, Erlang, C#, Prolog, and many more. I plan to write some TypeScript, ReasonML, and/or Dart in the future.