Welcome, I'm Kåre!

On this page I write about everything from parallel algorithms to rock climbing

I'm currently a PhD student in the Distributed Computing and Systems group at Chalmers University of Technology, and a few highlights from there can be found on my Research page. My PhD explores how to speed up massively parallel computations by relaxing the semantics of algorithms, such as allowing queues to return any of the top ten elements instead of only the top. Previously I briefly worked at Cisco in Stockholm, developing their network automation products. I have a masters in Engineering mathematics from Lund University, which was a lot of fun.

My Blog contains a variety of posts about topics I find interesting or fun. For example, I have a post about what I once (forcibly) learned about invariant lifetimes in Rust. I also summarize a few research topics or articles, such as Data Structures in the Multicore Age which sort of is the article kick-starting my research field.

Personal Highlights

Zote

This is my own programming language with a mantra that the programmer should be able to "write like they think". This ended up with a focus on pipe operators and an expressive syntax.

Are you also tired of writing Python code like print(sum(lines.split("\n")))? Then start piping in Zote with lines >> split("\n") >> sum >> print. Since most grammar rules are expressions, you can simply write double for loops with a filter predicate as for x in xs if x > 2 for y in ys { ... }.

North Pole Arborist Puzzle

This is a Christmas-themed programming puzzle for my old flatmate Samuel. It starts off by parsing a strange syntax tree, then requiring you to evaluate it with some binding limbs. I recommend it to people who are interested in learning and thinking about parsers and interpreters. It is not that hard, but a bit tricky.

Tree Sitter for Zote

I implemented a tree-sitter for Zote and integrated it with my text editor of choice Helix. This was primarily to get syntax highlighting, and to get exposed to some of the internals of modern text editors.

Advent of Code

This advent calendar of small programming puzzles has brightened my Decembers since 2020. I did my first year in Python, then switched to Rust (which was what hooked me on the language), then Julia, and most recently Zote.

I tried to rise early and solve the problems quickly in 2022, achieving 4 top 1000 placements. In 2023 I again tried to compete, doing better with 26 top 1000 placements, and one top 100!

Kodsnack Episode 564

This was my first appearance on a real podcast, and hopefully not the last. I was quite nervous, but had a blast. As expected, I wished I had done many things differently, but it was a fun first attempt. It is also in my opinion a great programming podcast (especially for being in Swedish), and was what inspired me to switch to Colemak and build a split keyboard.

Recent posts

The power of Graph Neural Networks

Kåre von Geijer published on
15 min, 2944 words

There is something about graph algorithms - they are just always fun to think about! With that said, Graph Neural Netorks (GNN) are no exception. These are a form of neural network, but designed in a way to learn things about graphs. They have proven to be usefull for a plethora of graph learning problems in fields such as drug discovery, recomme…

Advent of Code Retrospective

Kåre von Geijer published on
13 min, 2440 words

This was my fourth year doing Advent of Code, my second year trying to compete, and my first year appearing on the top 100 leaderboard (if only for a single day). Last year lit a fire in me to become faster, and since then I have built my programming language Zote, practiced some competitive programming, and …