I might be able to top that. About eleven years ago, I went through this process:
1. I wanted to redo my web site. But I hated using PHP which is all my shared host allowed.
2. Maybe I'll design a little programming language that transpiles to PHP. Then I can program my site using that.
3. I have the parser working and producing an AST. You know, writing a little interpreter that walks that AST is practically trivial. I'll do the PHP backend later, but let's give that a try.
4. Whoa, I have a working language! Neat! But, man, that tree-walking interpreter is slow. Maybe I could translate the tree to bytecode and write a little bytecode VM...
5. Bytecode is so fun! But I'm relying on the .NET VM for most of the heavy lifting like the GC and object representation. I wonder how that stuff works. Maybe I should try writing a little VM in C++...
6. That wasn't as bad as I expected. I learned a whole bunch. Maybe I should write some of this down.
So, uh, now I work at Google on a programming language and wrote a textbook on building interpreters [1]. I never did finish that website. (I just ported my blog to Jekyll at some point instead.)