Everything is important as it provides valuable experience. But nothing is important since it's all history. Come visit my Gitea if you'd like to see more random projects and source code.

Personal WMS

2019: got myself a label printer, wrote a driver for it, and finally built a ‘stuff managament system’ on top of it, pretending I live in a warehouse.

Job queue system at Auto Kelly

2018: a supervisor daemon to run long-running jobs submitted by employees, controlled over WebSockets with an interactive frontend.


2017/2018: getting sick of current terminal file managers for Linux, pursuing my own concept.

PDF invoices and receipts at Auto Kelly

2017/2018: made a typesetter based on Pango and Cairo, wrote code for PDF parsing, metadata modification and digital signing to postprocess the resulting documents, and converted existing dot matrix printing to the new format. Implemented a virtual Epson ESC/POS thermal printer for questionable reasons.


2016/2017: finally I can see in binary. You have no idea how hard it is to debug generated blobs without this.


2016/2017: first remarkable steps in the direction of compilers. Hanging out with elves and dwarfs, killing our remaining brain cells.


2016: maybe I could copy this whole GUI application and paste it in a terminal while making it easy to control from the keyboard?


2014/2015: chatting with my IRC bot on my IRC network using my IRC client, sending it commands to evaluate expressions in my own scripting language. Exploration into the realm of event loops and customizable software.


2014: collaborative drawing on terminals is totally desirable. Circumventing the brokenness of mouse input in ncurses.


2013: can I have PC Translator on Linux, and have it follow the current X11 selection? This is indespensable for reading text in foreign languages.


2010/2011: thinking that I could pull off a moderately large multi-platform, extensible, internationalized GUI application in C, and halfway succeeding. I'm not sure how I did it anymore.

Gradient maker

2007: with the right tools, writing GUIs is easy. Combining someone's OOP BASIC interpreter with my own C graphics library for speed.