Senior programmers with certain skills and experience may be in the position to walk out of interviews or shop around for the job that best aligns with their personal goals and wants. Most people don't have such a range of options. We're a fairly privileged group in the job market. If you spend any time reading HN you know a lot of people struggle to get any interviews. Most people in the job market are not in a position to put their needs over the needs of the employer, and most employers expect a different kind of relationship somewhere between catering to every need and whim of their employees and "slave driving."

Interviewing is all about judging, that's what both parties should be doing -- making judgments before committing to a potentially expensive and significant relationship. A person who walks into the interview with a list of personal demands and needs (yes, I have experienced that) makes a different impression than a person who is ready to negotiate their desires while taking the employer's needs and priorities into account. How that negotiation goes depends on relative strengths of each side's position. A senior developer in this job market may be in a very strong position. Someone trying to get a job as a retail manager may not have such a good hand.

I have interviewed people for senior-level jobs who didn't even know what the company did -- they hadn't done any research at all as far as I could tell. It may be hard to learn about internal processes and team dynamics in advance, but it's not impossible, especially now with so much information online. Most people won't commit to a restaurant meal or a pair of shoes these days before reading pages of reviews, so there's no excuse for not researching a potential employer. A perceptive person can ask questions and gather information in the interview process, though it's better to walk in the door with as much information as you can get. If the employer is evasive or secretive that itself is a red flag.

> If you don't like their demands, you have the choice to meet those demands or let them go. The employee has the exact same choice. Either your demands are reasonable or they can let you go. This is the most professional perspective because anything beyond that enters the territory of slave driving.

That's a false dichotomy. Both sides have room to negotiate. I may ask for full remote, the employer may counter with three days a week. I could quit at that point, or the employer could let me go, but that's probably not the outcome either side wants. What one side thinks reasonable may not seem reasonable to the other, which is why you negotiate. Having to compromise a little is not slave driving, it's a normal part of any relationship, including an employer-employee relationship.

The point of the interview is to get an offer. The candidate and the employer should have done their homework before getting to face-to-face interviews, so by that time neither side should be getting any big surprises. I wouldn't wait for an interview to find out that the company doesn't allow remote, I would already know that. If I'm committing my time and effort to interviewing I already have some idea what the company will and will not consider reasonable, so I'm going to wait until I have an offer before negotiating demands, or even the salary and perks.