Welcome, I'm Kåre!

On this page I write about everything from parallel algorithms to traveling

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 shared-memory computations by relaxing the semantics of algorithms, such as allowing queues to return any of the ten oldest items instead of only the oldest. Previously I briefly worked at Cisco in Stockholm, developing their network automation products. I have a masters in Engineering mathematics from Lund University, where I had five fantastic years.

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 that kick-started my research niche.

Project 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 Podcast Guest

I have appeared twice as a guest on the Swedish podcast kodsnack (translated as code chat), talking both about how I solved Advent of Code with my language Zote as well as my first published paper. I enjoy listening to good podcasts, such as Kodsnack, and I hope to continue appearing in episodes every now and then.

Recent posts

Implementing a Lock-Free Queue in Rust

Kåre von Geijer published on
17 min, 3292 words

Classical concurrent data structures such as FIFO queues are foundational in many different applications. It is very simple to implement such a queue by wrapping a sequential implementation in a mutex. However, lock-free designs are often preferred, as they can give better scalability and progress guarantees than ones relying on locks. The classic lock-fr…

Building a Custom Keyboard

Kåre von Geijer published on
9 min, 1709 words

Almost two years ago, I listened to a podcast episode about custom keyboard layouts, such as Colemak, and building a custom keyboard with only 22 keys. It hit me at just the right time, and caused me to shortly afterward switch to Colemak (which I've happily been us…

Categories: Project