I generally agree with the sentiments expressed here, but might I play devil's advocate for a second and explore the other side?

We are a self-selecting group of programmers who put a high degree of emphasis on bettering our skills and learning, and innovating. I would imagine that we all subscribe to the notion that a good developer can provide a value multiples higher than that of the typical "code monkey." I don't know if we'd all agree on the specific factor, but it's clearly greater than two.

I got lucky and managed to find a very competent mentor. It's turned my world upside down, but I've managed to see the light. That's why I'm in this community. I work for a startup, etc.

But how do you create value? What matters? This CEO clearly thinks that the way to create value is to hamper the free-flowing development processes that can truly yield great results given a good team. Instead of that he emphasizes top-down highly controlled development. To him developers are cogs in a machine.

But honestly, if you have a product that isn't meant to be revolutionary, and you work in a well-defined field, then maybe this isn't such a terrible approach? Hypothetically speaking, with a few people on the top who know what needs to be done, and a very rigid lower structure, then it could clearly work. And by "work" I mean create revenue and satisfy customers.

Now think back to your CS education (if you had one). In the US, a CS education attracts a lot of folks who aren't interested in the inventive, exploratory, creative method of programming. They learn Java (and only Java) because that's what's popular. They don't spend much time thinking about bettering their skills and the do what they are told. This is probably the vast majority of programmers, I would imagine.

Now a lot of you guys out there probably attended more of the elite universities where you are exposed to this competitive / creative atmosphere. Or maybe you got that elsewhere, it doesn't really matter. But if you went to a lesser school, you'd see that the majority of the CS grads really aren't that different than code monkeys. They hate the theory classes because they don't expect to use it. And if they don't see the point in theory, then they won't use it. There are a few that will "get it" and they will excel in what they do. Because they are passionate.

So why would you hire an American code monkey who costs five times as much as an Indian? I can't see the value either.

This, by the way, is one of the reasons why I feel that we also see so many stories of unemployable software engineers in the US. Knowing Java inside and out is a valuable skill, no doubt, but it isn't something all that creative.

Now, back to reality here. The guy's main complaint is that Americans expect to get rich. Now at this point, I can't say that I agree. I don't know if your typical American "code monkey" is after that result. But I think that those of us who love what we do can justify higher pay, because we are more likely to generate much more revenue per body than the average code monkey. It's just that his management structure has no way to take advantage of greater talent.

But that can be difficult.