Projects

On this page, you can find a mix of past work and hobby projects. For more, see my GitHub.

HiDALGO#

I’ve written a bunch of software for the HiDALGO project (see also publications). HiDALGO researched message propagation in social graphs with applications in epidemics, social networks, migration and pollution. Above is a visualization of how tweets spread inside and across clusters of people on Twitter. This is one of several visualizations that I created for HiDALGO using Python, but the main problem I tackled is graph clustering.

Most notably, I’ve written a highly parallel C program for merging similar clusters in an overlapping graph clustering. This tool utilized up to 1024 cores on Hawk, an HPE Apollo supercomputer at HLRS in Stuttgart - it was pretty cool running my code on a Top 20 supercomputer. I’ve also had the opportunity to gain experience with several other supercomputing clusters such as Eagle in Poznań or MACH-2 in Linz.

Instadose#

screen

Instadose is an iOS app for daily diabetes management that I worked on together with a friend of mine. Instadose counts carbs and helps with bookkeeping so patients can nail their insulin dosage every time. It also scans the Freestyle Libre blood glucose monitor via NFC, and displays a beautiful interactive history of the user’s glucose levels, combined with the nutrition history. (Apparently, the latter is such a difficult feature that Instadose is the only app that does it! The poor UX of first-party apps was a core reason I chose to work on this.)

I spent a lot of time on this app, and I’m pretty happy that it turned out to be very helpful for myself. I’ve been using it daily since its inception, and I’m hoping to be able to publish it on the App Store at some point. Sadly, the legal situation for medical software like Instadose is pretty challenging, to say the least.

I also loved learning about SwiftUI in the process of writing it. I started off by doing Stanford’s CS193p course which is freely available on YouTube, then I just taught myself as I went. With ~9K lines of code, it’s my biggest project by far.

LuaBox#

logo

screen

English badge

LuaBox (GitHub, Microsoft Store) is a port of Lua to the Universal Windows Platform. That means you can now run a Lua interpreter on your Xbox. It’s a fairly small weekend project, simply wrapping Lua and providing a simple interface. Only minor changes were needed for the port.

The most interesting part about it is the REPL. It’s actually not that easy to write a decent one because common features such as multiline input require you to actually understand the code you’re reading. I wrote a bit on this in the project readme.

Curves#

Curves

Curves is a clone of the popular Curve Fever flash game. It’s entirely written in Lua using the LOVE2D framework. Curves adds a few custom powerups and provides a fairly polished experience. But most importantly, it is free of ad breaks, unlike the original.

CC8#

CC8

A CHIP-8 emulator written in plain C. CHIP-8 is a simple virtual instruction set from the 70s. CC8 mostly works but there’s a series of bugs left which I never got around to fix. There’s also a nice colored-output disassembler.

CC8 draws graphics in your terminal. Sadly, that means it’s pretty much unusable outside of a GPU-accelerated terminal emulator such as Alacritty.

© 2020