Computer science, programming, and whatnot.

About Me

I'm Martin, and I'm currently an algorithm engineer at I was previously a PhD student at IST Austria in Bernd Bickel's group working on computational design and fabrication of soft robots. You can find my CV here.

I have broad interests within computer science, including: algorithms (approximation, parameterized, probabilistic), compilers and runtimes, comput­ational geometry, concurrency, geometry processing, computer graphics, high performance computing, inter­active computing, numeric algorithms, operating systems, pro­gramming languages, systems programming, and probably much more.

In computing at large I also enjoy 4k monitors, free and open source software, game development, mechanical keyboards, typesetting systems, and thinking and writing about it all. Outside computing, I appreciate beer, cooking, music, pizza, reading, self-sustain­ability, whisky (both the -y and -ey kind), wool clothing, and more.


I have a technical blog in which I try to write on topics I care about.

Other pages

Here's a list of other pages on this site.


Here's a list of projects and other things I've done, ordered by date.

Two Project Proposals for Computer Graphics

Before quitting grad school I wrote up two proposals for projects I found interesting. I won't work more on either project in the near future, so I'm putting them out here for anyone interested.

Object Deformation for Modling

When molding objects with few mold pieces, a problem is that the casted model cannot have any overhangs since the mold itself would be impossible to remove when the casted piece is cured. In this project, I adapted the ARAP deformation algorithm of libigl to weight for this moldability constraint.

Supervised by Bernd Bickel.

git repository available.

Algorithms for Persistent Homology

I did an experimental comparison of two variants of the well-known matrix reduction algorithm in computing persistent homology. The algorithm computes the liveness of holes of a simplicial complex; for the alpha complex this correspond to the holes that are created and filled by growing balls of a radius around each point in a point cloud.

Supervised by Herbert Edelsbrunner.

git repository is available, and continues to see some development.

Relaxed Scheduling of Disjoint-Set

Investigated expected number of collisions in scheduling random Disjoint-Set operations, supervised by Dan Alistarh.

Schedulers can use a relaxed priority queue for ordering its tasks; the relaxation makes out-of-order pops possible. Looking at a Disjoint-Set data structure, we want to know the expected number of collisions, where the out-of-ordered popped operation has a dependency on another operation before it in the queue.

Writeup available, although in a rough state.

Master Thesis: Multithreaded-Aware Garbage Collector for Rust

Master's Thesis at Norwegian University of Science and Technology. Implemented a tracing garbage collector for Rust, with emphasis on multithreaded use-cases.

Supervised by Magnus L. Hetland, and co-supervised by Dan Alistarh of IST Austria.

Both the git repo and the thesis are available.

Course notes for Advanced Data Structures

I wrote a collection of course notes for the course Advanced Data Structures at ETH Zürich, in the spring of 2017. Most of the lectures were either loosely or firmly based off of Eric Demaines MIT course 6.851 of the same title.

[pdf] [LaTeX source]