I've recently given up on applying for jobs with startups in Silicon Valley for this very reason.

I recently interviewed with one, which was supposed to be a "phone" interview. We did it over skype. No surprise, but the guy asked me to turn on video so we could have a video call. This really added nothing to the interview, was more a distraction than anything, but I got to see I was being interviewed by a 22 year old (with virtually no experience, I later discovered when I researched him online) and he could easily see my age.

The questions he asked were not discriminatory, but more along the lines of vague "technical" questions for which I would explain in detail ... detail that went over his head. Several times he assumed I got something wrong, mainly because of his lack of experience. For instance, explaining how to do something concurrently to someone who thinks in terms of threaded programming, they often don't see the issues, because they haven't done enough of it to see the terrible pain that can come with threaded solutions in certain situations.

In this case, I have been learning new things quite a bit. It's not a question of my skills being old, in fact, he asked me about a language I'd learned recently (I expect he thought this would trip me up), but I named one that I'm keen on, that has been in existence less time than the company I was interviewing with.

One of the great, fundamental problems of interviewing engineers is GIGGO-- if the interviewer is not a great engineer, and not a great interviewer, they will often presume an interview subject is not good based on their own ignorance. (ok engineers who are great interviewers don't suffer from this, of course.)

He also suffered from the problem of trying to ask the problem-solving questions, but describing the problem vaguely, or leaving key details out. OF course, in his mind, he knows the full problem, so he doesn't remember not telling me a key detail. In one case he asked me "how would you do X in Language Y"... to which I answered you couldn't, because the language didn't support it, but if you wanted to have a similar effect you could do this other thing, and here's the three things wrong, or dangerous about that approach. He then decided I'd gotten it wrong and told me how to do it in a whole other language than the one he specified in the question!

So, he's a poor interviewer, no doubt, but every single one of these questions, I'm sure, he assumed I got it wrong because I was older... it puts a spin on their perception of you completely.

Plus, I don't understand the contradiction that exists in startups-- they claim they want "great engineers", but they also want cheap engineers, and they also want young engineers.

One thing that makes me a good engineer is that I've made a lot of mistakes in the past and learned from them. I wouldn't discriminate against someone younger simply because they haven't made as many mistakes yet, but I don't discount the value of experience either.

It takes all kinds, and the monoculture that so many companies seem to seek is part of the movement to turn software development into an assembly line, and take it out of the realm of craftsmanship.

I think part of the cause of this is the easy funding for quick-to-flip ideas started by MBA types from Ivy League schools... that aren't really technology companies so much as a form of investor arbitrage. (EG: put money into an entity which uses the money to buy "traction" and then flip it to other investors or the M&A department at a large company using acquisitions as a way to hire.)

My conclusion is this: IF you're in your 30s, you can't just be an engineer anymore.

You need to start working into management, and become a manager if you want to work for others, or you need to become a founder.

Because by 40, you're on your own.