On the communication issue, I'm going to have to give you a harsh truth: When I'm interviewing someone, I need to know that they can communicate with me. I don't care if they can communicate with every other Englishman in the world and it's just my accent that causes a problem for them. I need a team of people who are able to communicate with me.
There is nothing racial in this. I don't care where you come from. I only care that you can communicate with me. Because when the shit hits the fan and we've run into a problem that we can't fix in time, I need you to be able to communicate the problem, the solution and how long it's going to take to me, so that I can either offer alternative ideas or communicate it to my bosses.
And I know I can find people like that, so that's just fine. I also know that if you're good in every other way but you can't communicate with me, you'll find a job elsewhere, so I don't feel bad about it either. It's the way things should work.
As to the issue with only being given half an hour to solve an hour-long problem, there are three possibilities here:
- You are completely correct and they didn't give you long enough, or account for that fact. In which case, you do not want to work for them. That's fine.
- They didn't give you long enough, but they know this and accounted for it, in which case you might be ok. But then, depending on how badly you want a job, you might want to consider this question: If they think they can judge a programmer in half an hour, what level of people are you going to work with?
- They gave you exactly as long as they intended and it is you who thinks you should have had longer. In this case, you're wrong for that job, so don't worry about it.
On the final point about his long speech at the beginning of the interview: Worry about any company that doesn't do this. I do 15 minutes at the start of a first interview, telling them about the company, the team they'll be working with and myself.
If we're not good enough for them, I want them to walk away, because I don't want to waste time training them and then have them leave anyway. If they're intimidated by the team then I want to know that very early, because (among other things) I don't want to offer them as much money as the rest of the team.
If someone isn't giving you this information right off the bat, worry about what information they're hiding, worry about whether they really know what they're doing, or what they're looking for. Worry about what the company does and how it treats people. Just worry. Don't necessarily discount them, but be ready to ask lots of questions.