> But why would I afford them the same courtesy?

Because you're NOT affording THEM the courtesy. You're doing it for US as a community of software engineers.

I read a lot of complaints on here about companies do x, y, or z in their hiring processes and we don't like it.

Fine: tell them.

You know why? Because companies often listen to this feedback. Sure, some don't, but plenty do, and we certainly do.

If you are hearing the same thing over and over again from great candidates about why they don't want to go through your hiring process[1], and you're not able to hire engineers in the calibre and numbers you need, you'd be pretty obtuse not to do something about it. Even if you are able to hire the people you need, you might choose to make changes so that even unsuccessful candidates have a good experience and are more likely to speak well of you, as well as to increase your pool of better candidates. Sometimes those changes will take an awfully long time to occur, but companies do listen, and they do make changes.

(There are of course some companies that have so many people who want to work for them that they can afford to have what many of us would perceive to be an unduly arduous selection process and they're not going to change however many people complain about it, because they have no need. They have a different problem that they're optimising for.)

You might complain that this is not your responsibility, and that's fine: it's certainly your choice. But, if you want to see a net improvement in hiring practices across industries that hire engineers, you may want to take some very small portion of the responsibility that we can all choose to take for making that happen.

Let me be clear: it is much more effective for you to give companies with poor practices feedback directly (and politely, even if through gritted teeth!) than to complain on a substantially anonymous internet forum.

With all of the above said I'm now going to move into perhaps more controversial territory.

Not everything is about how good an engineer you are. In fact, your technical skills, whilst absolutely essential for the job, are not the most important factor.

We care about character. We care about how well you're going to work with others. We care about attitude. We care about maturity. We care about entitlement (or rather we have a strong preference for the lack thereof). We care about listening skills. We care about humility. We want people with initiative and skill, but we don't want divas.

Sadly this sometimes feels like we're spending more effort on weeding out negative traits than selecting for positive ones. Still, as I've said these character attributes are quite a bit more important than candidates' technical skill.

Fundamentally, we want to work with people who are easy to work with because in a team context you want everyone to rub along well together. We want people to treat eachother courteously. We want to avoid unnecessary drama.

[1] I've chosen that phrase carefully: I'm deliberately not discussing people who don't want to work for you, because there can be many reasons for that that have nothing to do with hiring process, culture, salary, or whether you're actually a good place to work (location, product, sector, etc.).

[2] Note: character, not personality. I don't mind what your personality type is (extroverted, introverted, whatever). We can work with anyone, as long as they're not an asshole.