Reading "Crafting Interpreters" (https://craftinginterpreters.com/) and following along in Rust.
I've got a tree-walking interpreter (Chapter 2), and a bytecode based one (Chapter 3).
There's a lot of things beyond the scope of the book I'd like to add, but they're currently sitting in my notes somewhere, and I'll have to fish them out later.