I'm an old systems programmer (embedded, c/c++, linux, etc) with an EE background (but not one of them if you know what I mean. I enjoyed software and appreciate the art). But early on I came to believe software engineering at a workplace is not your personal art project. If you want that, great, go write code on your own time(as many of us do!). But on the job I often get annoyed by folks who don't want to do the obviously correct thing, or want to fight against good refactoring or design feedback (usually not from me.. I'm like a 'B' tier programmer and in awe of the 'A' level I work with). People treat software as an art and while you want to be artful in execution, if you are a paid artist, it is a commission work. Honor the requirements of the company (business needs) and not just your personal feelings and desire to only make art.