I wrote a bespoke scheme interpreter, then a virtual machine, a bytecode serialization format and a fun standard library. All in C. Totally useless for real work, not unique in any way, but really fun and great for learning. Sometimes useless shit is the best.
In college I wrote an assembler, interpreter, and simulator for an 8-bit chip, the 8048. Got a four-credit "A" :-D
Later I read the C code for a Scheme interpreter -- Scheme 9 in Empty Space -- highly recommended! I bought the book. https://t3x.org/s9book/index.html