Projects

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

Instadose#

screen

Instadose is an iOS app for daily diabetes management. It counts carbs and helps with bookkeeping so patients can nail their insulin dosage every time. It can also scan the Freestyle Libre blood glucose monitor via NFC, and displays a beautiful interactive history of the user’s glucose levels.

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’m hoping to be able to publish it on the App Store sometime, although the legal situation for medical apps like Instadose is pretty complicated.

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.

HiDALGO#

I’ve written a bunch of software for the HiDALGO project (see also publications). HiDALGO is researching 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 1024 cores on Hawk, an HPE Apollo supercomputer at HLRS in Stuttgart. At the time of writing, Hawk is the 18th fastest computer in the world. I’ve also had the opportunity to gain experience with several other supercomputing clusters such as Eagle in Poznań or MACH-2 in Linz.

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