# About Me

I'm Martin, and I'm currently an algorithm engineer at vind.ai.
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,
computational geometry,
concurrency,
geometry processing,
computer graphics,
high performance computing,
interactive computing,
numeric algorithms,
operating systems,
programming 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-sustainability,
whisky (both the -y and -ey kind),
wool clothing,
and more.

# Projects

Here's a list of projects and other things I've done, ordered by date.
### Object Deformation for Molding

*1 Jul 2019*
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

*20 Feb 2019*
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

*4 Dec 2018*
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 `pop`

s 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

*13 Jun 2018*
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

*23 Jul 2017*
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]