Learning programming language theory and then putting it into practice by writing a compiler will 100%, without a doubt in my mind, make you a better software engineer. This is because you will have to put many complex systems into working and coordinated order to have a working compiler, even if you use something like LLVM. And you will get a better understanding of a fundamental aspect of computer science: modeling ideas into a language and then directly speaking that language.