Firstly compiler engineers should be curious and patient.
And one also should know the following things:
- CPU Design and Architecture.
- Algorithms (especially graph-based ones).
- Compiler internals (from parser to codegen).
- Operational systems design
- How linkers works
- Data Science / ML
These are the first points which came to my mind. Obviously this list is far from complete, and I will enhance it from time to time. I created this list based on my experience. I believe that you have things to add. Please drop your thoughts in the comments.
In later posts I intend to add links of useful books/courses/articles/you-name-it for every item of this list. So, stay tuned.
P.S.: Btw, nice starting point can be found here: cpplinks/compilers.md at master · MattPD/cpplinks · GitHub