>
Another perspective is to consider training junior engineers to be a core job responsibility of senior engineers.This is, I believe, a major reason why software sucks. Just as a person becomes somewhat competent at writing software, they're told to stop the very job they're finally good at, and focus on helping juniors become... teachers for the next batch of juniors. Unless you have a point in the process at which seniors stop teaching and go back to writing code, your software ends up being written entirely by juniors, putting a cap on the quality and delivery speed of your product.
> Most engineers who complain about teaching and mentoring shouldn't be promoted to senior level in the first place; in the long run they would probably be happier and more successful as independent consultants.
Most engineers who complain about this would be even more happy and more successful as "independent consultants" with an employment contracts and a monthly salary. I.e. those engineers are just asking to be allowed to continue to do the work they're finally proficient in, under conditions they worked so far (i.e. employment contract). Instead, they're being offered a choice of pivoting to unrelated activities they're likely not good at - either teaching or managing financial risk.