Programming language
* self compiling compiler (self-hosting?).
* self interpreter interpreter (metacircular evaluator)
[from scratch. no parser generator or backends like LLVM, or tools like that, as they hide much info and insight]
Testing
* Fuzzer (for testing, e.g. programming language implementation)