That is true. I think most people no longer write Compiler Backend Code in the traditional sense, LLVM can do it better anyway. And lexers can even be generated automatically from an LBNF grammar. So all the interesting parts are in the middle section where type checking and language specific optimizations happen.