My current company hired me as a Software Engineer. Their software has organically grown over the past six years and it really looks like what you would expect, when you hear that a software system is that old. There was no real abstraction, no idea of services - nothing fancy.
It is all very tightly coupled and not really SOLID. I noticed a bunch of things that I wanted to change, but the whole software was not only tightly coupled in itself - it was also tightly coupled to the system architecture.
I realized that if I wanted to change the software I had to start with the system architecture. Thus, I joined the infrastructure team where I learned a lot of new stuff as well as what it meant to be on call. I realized that this has really improved my software engineering skills, and hence I can really encourage any developer to be aware of the system on which the software runs, that he is writing.