For the last couple of years, I've been working every day, all day, on a code library/framework. It's the most advanced software project I've done all my life, and it has required numerous "iterations" and endless hours of hair-pulling while trying to debug things and verifying that things still work correctly.
Almost since the beginning, I have been using this system at the same time as I'm developing it. That is, not with a "stable version", but the actual, live code files which I'm editing. I do all kinds of automated logic with this, such as fetching my bank account information or talking to various APIs, processing all incoming e-mails, etc. Basically any reasonably solvable task that I need to do with my computer.
As soon as I update a source code file, my running "master loop" detects this and restarts itself. It only waits if it detects that one of the source code files are syntax incorrect. If I'm not very careful, this causes a cascade of errors which are sent by this system to myself internally and plays various sounds.
I've been trying to find a term to describe this "paradox", if it can be called that. Basically, I'm developing the same system which I'm using to develop this system. Sometimes, I have to really stop and think about what I'm doing, because it even confuses myself.
Is there an established English phrase/word/term to describe this?