I've been programming as a hobby for over ten years. From very early on, I discovered an interest in systems programming long before I knew the field had a name. I've always been curious about computers really work under all the layers of abstractions. This has lead me to explore a number of fascinating topics like compilers, operating systems, databases, and CPU microarchitecture. It feels like understanding all these abstractions and how they really work on the inside helps inform me on how to properly utilize them.
I'm really interested in problems of performance engineering because they're a good place where I can apply my knowledge and they can require a lot of creativity.
For the last year, my recreational programming efforts have been focused on writing my own C compiler. Nearly 100 commits and many thousands of lines of code later, it's not anywhere near being finished, but I'm still having a lot of fun working on it when I can. I'm taking the time to get some of the core data structures and representations right, because as a solo project, it might be very difficult to go back and re-lay the foundation at a later time.