This GitHub is where I put some of the software I'm working on that's (mostly) suitable for public consumption. This includes:
- Random little projects/investigations that took my fancy at some point.
- A few polished items that do something useful.
- University coursework.
Hopefully any of my work may be useful or interesting to someone out in the wide world. (Most of it has open source licensing, so just go ahead and take it!)
My two biggest loves in software are 1) software that's efficient, and 2) software that's high quality.
For the first point, I love high-performance and low-latency software. Optimising code is extremely interesting and fun for me! I aspire to eventually be like one of those guys who reason about caches, branch prediction, and CPU architecture.
For point 2, one of my biggest tech-related pet peeves is janky software and code. Code that doesn't work properly, is hard to use, hard to read, hard to reason about... I cannot stand it. Hopefully the work I present here doesn't fulfil any of those qualities (well, for the most part).
I started programming in C++, and I keep coming back to it, due to its more-or-less unrivalled performance capabilities.
But, sadly you can't do everything easily or nicely in C++, so I use a good deal of Python too.
Another language I'm a fan of (although don't use often enough) is Elixir.
In terms of specific coding practices, I'm into functional programming, generic programming, and data-oriented design.
I'm often on the fence between super nice, clean, robust functional coding, and ultra-performance-driven data oriented.
This is an ongoing internal struggle for me.
- Incremental backup tool. This is for sure my most usable project that serves a legitimate need (I use it to back up all my personal data).
- Generic serialisation library for C++. Another polished and feature-complete project that just has some really cool C++.
- Simple unit test framework for C++. Quite handy for testing small projects.