My Projects

I enjoy learning new technologies and experimenting with them by building small projects. Several of these are available as open-source projects on my GitHub profile.

Python Taskwarrior Todoist CLI

I used Todoist for a long time and it is a really great productivity app. But after trying Taskwarrior, I knew I wanted to switch. I enjoy using and building CLI tools, so I decided to build a tool to migrate all my tasks from Todoist into Taskwarrior.

I’m an avid user of Vim and I wanted to be able to store guitar tabs locally so I don’t need to open slow, ad-riddled websites each time. I don’t really like programming with VimScript, but it gets the job done, so I ended up using it to build a plugin to view guitar tabs, including a guitar chord viewer and autoscroll feature.

While learning German, I found that frequently looking up translations on was slow - open the browser, type in the URL, wait for it to load, type in the search, etc. Being able to do this in the terminal sped things up. I also wanted to improve my knowledge of Haskell and this was a good first project.

Rust Vim VimWiki CLI

I use VimWiki daily for my notes and journal. I tag my notes extensively, but found that the built-in tag search in Vim and VimWiki were too basic, supporting only searches like “find all entries with the tag work”. I wanted to be able to do something like “find all entries with the tag work and python but not flask”. I also was very interested in Rust at the time, so I wanted to build something using it and get to know the language better.

Python Async SOCKS5 Proxy

I wanted to experiment with Python’s asyncio and build a server application. SOCKS is a simple binary protocol that is well documented and was easy to implement from the RFC.

Vue Javascript

I was curious to learn more about VueJS, so I built a library to render and edit guitar chords.