If you are hired to write code, that's the contract; your job IS to write code. Just like a plumber's job isn't to solve problems in general, just the problems involving plumbing, and that's what makes him a plumber instead of something else. Otherwise, there is no reason why we would call them plumbers, why they would get specifically educated in plumbing, and bring a plumber's toolbox. You don't call the plumber when you want a sandwich or a car repair. A plumber who lets clients jerk him around by having him make them sandwiches or answer their phones doesn't know his business.<p>If you are a plumber, please don't tell me that you offer solutions. Please tell me you are a plumber so I don't have to get confused about what it is you are actually offering.
In my experience unit testing has less value than end-to-end testing. Unit tests rarely break and the reasons it break is not something that you couldn't guess. In contrast end-to-end tests fail with a big surprise! I always enjoy seeing my end-to-end tests catching errors that I would never ever thought of.<p>The down side of end-to-end tests is that it's slow to develop and slow to run. Because in many cases, end-to-end tests should be sequential and involves network calls and browser rendering. In general it's worth it.
Modern software development has always struck me as trying to optimize the wrong thing. It tries to make change easy, but changing things is never easy. Just throw away your code and start again. If this a lot of effort, its probably doing too much.