With A Talent War In The Valley, Perhaps Romania Has The Answers?
techcrunch.com
techcrunch.com
The 4 * 2 hour reviews + coding test + references + logic questions + firewalking culture is ridiculous. It might make sense in places where firing employees is extremely difficult, but not in NYC or SF.
%99 of the jobs supposedly in "shortage" could be filled by anyone with an attitude for programming, self motivation and a good mentor. Look at the current products of Silicon Valley - how many of these require much more than basic web development skills?
I also imagine there's plenty of talent in places in the US besides SV and NYC.
Even if compensation did scale linearly with productivity, two programmers with productivity X are still worse than one programmer with productivity 2X since communication costs grow as the team size grows.
I wouldn't be a prudent businessman if I didn't fight relentlessly for the best developers...
Personally I don't believe in the x10 rule. It might have been true when you had to code your own servers in Lisp to build a website, not when you build a Django CRUD app.
In any case, when you mentor someone, they may turn out to be that top %10 dev.
DISCLAIMER: I run a small Django company in India, with more than half of the revenues coming from remote web development for US/Europe companies.
Remote development service can work very well irrespective of location if "cheap labor" is not the only reason behind it.
What I have seen is people hiring remote developers in East see remote developers as "us" and "them". As long as remote devs are not seen as a part of team working together like a machine which is working 24x7 - one part of the machine works, while the other part rests.
As someone(I don't remember who) once said, "if you are paying peanuts, you will only get monkeys".
Now, we have had times when we HAD to work(no other option) at as low as 7 USD. What is the problem with this? This is not enough, anywhere in the world. During those days, results were disastrous for us. Since we had to cut expenditure and eventually salaries, we lost 4 out 5 of our core dev team. In a way we had to build our team from scratch.
Remote development can work and we have had some amazing experiences. Here is what I have seen works:
- Have an in house dev team: For anything non-trivial have an in house dev team, even if it's a team of just one engineer. Hire a good one. He will help you in understanding/verifying the technical capabilities of the remote team. And It will ease up lot of communication difficulties and shorten the unending meeting over Skype/IM to a minimum and save boat load of time.
- Give them a small project for a week as a test of their capabilities. This way you will also keep out swindlers - companies/developers pretending to be good instead of actually being good.
- Stay away from unbelievably cheap labor: You can get devs at 5 USD but understand this; while life may be cheaper in east but it's never this cheap. You may get a good developer (with no other options) really cheap, but he/she will jump the ship without blinking as soon as a better paying opportunity comes. You will get an good(not great) developer for $20-$25 and really good devs for $35 - $45. If you are looking for "GREAT" engineers(which as rare here as anywhere in the world) they will cost approximately same(or may be 10 - 15 % less) as in US/Europe.
- Stay away from companies who claim to have expertize in every possible technology. Find companies who work in niche. E.g, Want a rails developer; find a company/individual that specializes in rails. These are the companies that generally have a project manager talking to you and you will probably never get to talk the actual developer.
- Don't do too many meetings: Meetings, specifically long ones and in the morning, drain out energy. When a developer has a meeting at 10 am to 12 noon, you just killed his and in turn your whole day of work. Have 3 - 4 short 15 min meetings per week and stick to them. Also do not generate unnecessary email traffic, long meetings and long email are the same thing - time wasters. Instead use ticketing systems to full advantage. Concentrate most of the communication on it.
- Learn about the remote team: If you have a remote team, learn about them. Learn about their culture. Learn about things that are important to them. Talk about things that interest them other than work. Always remember, a common developer(who is employed by an outsourcing company) is shit scared of the client paying in dollars. They will say yes to almost anything(specifically Indian devs - no matter how advance we claim to be, we as a people, are yet to shake out out of colonial mentality of "Yes Sir! As you wish Sir"). They don't want to offend clients and in turn their bosses. So get to know your developer team. A small amount casual talk will go a long way toward building the mutual trust and increase comfort level and in turn productivity. The target is to make your remote team feel as passionately about your product/project as you feel yourself. And it is not possible if you are not willing to invest time/energy to integrate your remote team.
Just my 2 cents.
What does matter is expertise, skills and learning, all other staff is completely irrelevant. (See http://www.computer.org/portal/web/csdl/doi/10.1109/TSE.2009...)
The long and short of it was that it was nice to put in requirements late in the day and have them done in the morning but overall the code quality was terrible.
We had a Romanian developer here in the States and he was great. He was in charge of the Romanian contingent so he could have been a bit better on the code quality control side but corralling 15 coders is not an easy task so I don't blame him.
I am sure there are a lot of talent around the world but a lot of them make their way to the States or other higher paying Western countries under visas and leave the average back home a bit depleted.
I've seen the same phenomena in Pakistan and India as well. Great Pakistani and Indian devs here in the States and mediocre coders back home.
First of all, I do not agree with what you're saying. A lot of people do not leave the country, simply because of our culture. We are used to live close to our families, we are used to live close to our place of birth. We are not as disconnected as other nations.
I have ex-colleagues that were hired by Google. At least one of them preferred their Zurich office to be closer, even though he is so capable that he could have chosen any of their locations. I also have ex-colleagues and friends that refused to work for Google or Facebook and that are still in Romania. Including myself.
There's something often not said whenever people talk about outsourcing to Eastern European countries: foreigners often come with high expectations, in exchange for peanuts. This article says that you can find a great developer for 2000 EUR. That's true, but that's also peanuts and those developers getting paid with 2000 EUR won't stay interested for long and if they do for the long term, they'll just put the minimum effort into it, while doing their own thing.
I very often get invitations from U.S. companies to join their projects. Because I like to stay up to date with the pulse of the market, I accept to participate in many interviews. However, because I don't want my time wasted, I talk about salary expectations early on. And I can't tell you how disappointed I get, as companies that have quite the reputation come to me with salaries that are somewhere between 1000 EUR and 2000 EUR ... which really, is downright insulting.
Also, companies that have a large development team in the U.S. tend to outsource the throwaways. This is another thing that's often not mentioned, and I'm sorry, but you won't get the best developers here with this attitude.
Now, do not get me wrong. I love working for U.S. companies, but do not offer peanuts or throwaways, otherwise you will get monkeys. And when reading pieces like the above, remember that context is everything.
Ugh! That is /terrible/ for talent anywhere to have to put up with.
We have two developers, one Turkish and one Indian who worked for us here in the States for several years each. Excellent developers. Now they both remote in from their home countries and still make their original salaries. I think that might be a decent model for those that can do it. Move to a host country, develop the trust that only working in the same office can give, then carve out your own situation as you see fit, whether it is travelling the U.S. in an RV, or moving to the deep suburbs or moving back home even if that home is on the other side of the planet. Overall it will accelerate the trend to parity all over the world.
I suspect Romania's time has not come just yet, though it's definitely one to watch in the coming years as this effect of investment travels progressively eastward.
Working in IT in Romania is a good position socially and economically. You have a good salary and you are part of the middle class from the start.
If you just want to have a normal career and a family life there is no reason to leave Romania for the West.
So, the number of quality developers isn't influenced as much by this.
It's influenced much more by our education system which imho is failing and by the very same local (multinational) companies that want worker bees and don't know how to grow their own people.
Today most of the developers have a good command of English, keep up to date with the latest technology trends and have a solid classical education background in math, engineering, etc.
The huge oversupply in talent meant that a lot of the best developers ended up working in black and grey hat hacking, online fraud, etc. There is a reason why East Europe is the epicenter for these activities.
There is no reason why startups in the West should not be hiring more people out of these parts of the world. It is definitely less competitive than other traditional outsourcing centers and the quality of people and work is excellent.
If anybody is interested in hiring in this region and would like some advice or someone to act as a bridge, be it to find full time people or contractors, feel free to contact me (details in profile).
I am just wondering what were acceptable ways to compete 15 years before 'Stalin-esque' communism during 'Iron Guard' times? http://en.wikipedia.org/wiki/Iron_Guard
First, the median programmer who actually knows FP would be at least 90th percentile in general, and a strong argument can be made for 95th. If you're using a language like Scala or Ocaml and filter out people who don't actually know them, you can usually hire 50-80% of the people you bring into the office... which keeps interview costs down.
Second, people who insist on functional programming still have a tight job market, so there hasn't been the same bidding war and salaries have only gone up 20-30% instead of 50-75%.
A good (1.8+) Java developer costs $225,000 per year... because people who get to that level of skill in Java are just rare (and Google is buying them all). You can get that same level of developer in Ocaml or Haskell (and probably a better product, because it's a better language) for about $135-150k.
However, I am reminded that when Sacha Baron Cohen needed to pick a country to film his movie Borat's scenes of a mock-Kazakhistan, something even more impoverished and backwards looking than the real Kazakhstan, he picked Romania.
Why is there not already a large number of Romanian startups producing high quality engineering? Well, as part of the EU since 2007, the most talented Romanians now move to Germany and the UK for software work.
The same principles are at work in the American Union as that of the European Union. There are many intelligent English speaking people in Alabama who have been to excellent schools established during the space program, and many parts of areas have very low wages. However, we do not see much outsourcing to Alabama because the talented tech people (aside from Marshall Space Center) are not actually telecommuting in tech work from those remote areas, accepting those low wages. They instead move to California and New York when they graduate college. This happens because in both the EU and US there is freedom of movement between member states.
Both states are part of a union with freedom of movement between states. Both unions have poor areas. In neither case can you rely on finding high skill talent and expect to pay low wages as the article suggests, because the talent moves from the poor regions to the areas that pay market wages.
Admittedly, this is the first time I've heard all these names.