Ask HN: Why don't startups outsource/offshore development if salaries are low?

45 points by tuyguntn ↗ HN
This is a follow up for "What up with these startup salaries?"(https://news.ycombinator.com/item?id=9052727) If salaries are much low in startups comparing to Big Co.s why don't startup owners outsource the development in cheaper labor countries and work on marketing, selling of their startups.

I am from Central Asia, here you can easily hire really good developers for 2K$, avg 1K$ and beginners are ready to work for <500$.

Most of the companies are already outsorcing their development here and selling in Europe, US.

Most of us may think developers aren't good enough. To some extent you maybe right, but in general thats not true. Avg. developers maybe haven'n worked with AWS so far, because mostly no demand for AWS in local IT companies, catching up is no problem. Instagram owners also haven't worked with highload before gaining success.

Update: Please consider offshoring also, not only outsourcing.

Update: Reasons so far(ordered by priority, opinionated):

0. Mindset, (founders love vs contractors need) to make product

1. Not comfortable with remote workers or difficult to manage

2. High gaps in skillset

3. Time/Cultural/Language barriers

4. Low quality implementation (docs, tests, code)

5. Retained value

91 comments

[ 3.2 ms ] story [ 150 ms ] thread
In my experience, there are two schools of thought in this area: 1) You want developers in-house because they're creating your product. This generates your revenue, so you want to be intimately involved (not outsourced). 2) You want very, very low overhead and/or aren't in a time crunch to deliver the product or new features. Which gives you more flexibility to handle somewhat lower quality (and more difficult* to manage) outsourced developers.

* Not as easy because they are not in-house.

Totally agree with "intimately involved", this makes development more productive, than calling by skype and saying "Hey we have bug, clients are waiting, just fix it somehow" ;)
A combination of reasons:

1) Most companies are not institutionally comfortable with remote working, to say nothing of remote working internationally.

2) There exist pervasive skill gaps between talented engineers available to work at $150k per year and talented engineers available to work for $12k per year. I respect that many people wished this was not the case.

3) Many investors in the Valley, whose opinions are quite relevant given that one cannot self-fund employee salaries, are of the opinion that outsourcing development work suggests a tech company which will never achieve the path to $100 million in revenue followed by a $N billion valuation, which is what their business model counsels them to search for. They would point out "I cannot think of a single company whose product was not produced in-house in history which achieved that" and they would not be far from wrong.

4) Managing outsourced development is a skill, and its a skill that most companies and individuals suck at, and do not particularly wish to become great at.

5) It is the widespread perception in the American tech industry that BPO companies produce software whose quality is abominable and that the process of dealing with them is pathological, as evidenced by the fact that only companies which institutionally hate software and software people are willing to work with BPO companies. Many in the American tech industry do not hate software or software people, and thus would have a very high bar to be convinced to use a BPO company.

Yes, remote working maybe not an option, but founders can visit and open their development office. I have worked for 3 companies so far and all of them are selling product in overseas and doing development here, by putting someone experienced as a CTO in development office.

Ratio between salary ($150K vs $12K ) are too high comparing to ratio of skillset, 10x low salary doesnt mean 10x low skillset, thats just financial state in countries. A lot of guys are working at Amazon, Google, Microsoft and other big corps who took experience here, developers are not bad, they might not have enough experience.

~$300K is avg. spending for 10 developers with office and perks included annually. Compare it to $750K spending for 5developers where each of them has 2x skillset of outsorced developer just for salary and other spendings annually, which I guess will be around $1M/annually.

It's tricky. Being 2x better means 1/2 time to delivery, 1/2 maintenance burden, 2x more flexible software, and 1/2 the management burden, and very often all at the same time. It's also much harder to find cream of the crop workers in cultures you are less familiar with, so the average case (where some people are quite bad at it) is, from what I've seen, a little larger than 2x. Maybe 3-4x, sometimes more? And compounding across all those disadvantages (2x more work to make a change due to worse design, 2x times slower because of lower skill, with every week needing 2x as much management, slowed down by the extra daily operations and keeping-things-going, can be... a lot), it can actually work out to be a worse deal unless you're pretty careful. Personal experience shows that this involves both careful hiring and on the job training.
> I have worked for 3 companies so far and all of them are selling product in overseas and doing development here, by putting someone experienced as a CTO in development office.

That's great (no snark intended) if you have a CTO who wants to move to Central Asia. Most startups probably don't.

Also, HR practices of startups leave much to be desired. I've sent 20 emails more than a month ago to companies who had remote positions for developers (stackoverflow, github and wfh.io). Only two bothered with reply (one interview, one "sorry, no non-us developers").
I think this is common across the board. The exceptions are the HR departments that keep applicants and interested parties updated and answer your questions quickly.
I know of some social media startups in LA that are doing OK that outsource their development to a particular shop in India that specializes in that kind of work.

As for the quality of developers, you will find everything across the board. The best shops in India are process driven and serious about continuous improvement and can be a joy to work with. The dirty little secret of IBM Watson and other commercial NLP systems is that it takes a small army to code those kind of things and you can get the manpower there.

I think the #1 fear about a tech company outsourcing is that you don't really control the intellectual property. This might not matter so much if you are running a two-sided market (Uber could outsource development because anybody who wants to rip them off has to go fight city hall in thousands of places) but if you really are a "tech" company you want to keep your knowledge close.

Why wouldn't you control the IP with outsourced development? Obviously, any competent company would make the outsourced developers / development house hand over all rights to anything they produce under contract so this would be a non-issue.
Legal threats against ex-employees based in your home country carry an awful lot more weight than legal threats against a subcontractor based in India, Russia or China.
YM, of course, MV, but I've worked with outsourced teams (plural) before and the decisions I've observed have suggested to me that, regardless of whatever IP agreements you've made, some will obviously be trying to build stuff they can reuse elsewhere. It's hard to enforce an IP agreement when you're in Boston and they're a couple continents away.
And, surely, they will honor their contracts to the letter.

Your employees might take home your entire code base in the US, while working on-site on an air-gapped network. They can certainly do it when you're set up for remote work, almost by definition. In the US, the payoff for stealing your employer's code is low, and the risk of punishment high, but it still happens. I can't speak for non-US countries, but I would guess that most have a bit more relaxed attitude toward enforcement, especially when it would be on behalf of a US company.

If you think your IP is secure from the software developers who wrote it, you do not understand how they work. If you do not hold the loyalty of your developers, you do not control the IP, regardless of what the contracts say.

Thanks for clarifying. I actually hadn't thought of them stealing the IP despite the contract, but it makes sense that it'd happen.
A large piece of delivering value to a business as a developer is, in the words of PG, "knowing what to build, not just how to build." Day-to-day, an on-site developer might be expected to sift through customers' feedback, join in on customer meetings, visit a customer to watch their product being used, and have the opportunity to overhear what issues the customer service team seems to be dealing with over and over again. He or she may well end up writing fewer lines of code than a remote developer because of these interruptions, but when those fewer lines of code have a greater financial impact on the business, the business is happy to continue to pay 10x salaries.

Also, many startups strive for amazing customer service, which usually means fixing issues on the spot when a customer calls in, American business hours. (I realize many remote developers are in similar time zones, but it is worth noting.)

Seems like the optimal mix of skills and location is; find someone local that is good at doing what you're talking about and teach/force them to get good at #4 on patio11's list.

This one person (or small local team) can then 1) drive the product 2) act as a project manager with a big workforce and 3) stop coding, start reviewing code written by the minions and 4) get them where they need to be on new tech stack etc.

Timezone issues should be minor. Even people in the US should only be in the office 1/3 of the day. You need to rethink your whole management style, prioritization-wise if you run into problems like commonly needing stuff during off peak times. (Or, just hire a rotating shift so you have a 24 hr staff in Asia).

> Even people in the US should only be in the office 1/3 of the day.

A Silicon Valley startup /generally/ has most of their customers in the US. Both US businesses and US consumers have a cultural expectation that issues be resolved quickly within business hours, but are usually more forgiving at 9 PM at night. (For example, if I call my bank at 3 PM, I expect a resolution darn near immediately; if I called at 11 PM I would expect to leave a voicemail. In both scenarios I am equally satisfied, even though in the first I received an immediate solution and in the second I did not.)

It's not a matter of having developers on call 24/7, but in having the 8 hours they are online overlap the 8 hours that the customer base expects prompt service.

I'd argue that you're talking about customer service, not software development. That's a different topic, I agree customer service should be responsive and local to customers.

If you notified your bank of some technical issue. They would probably respond thanking you and telling you that they would look into it. I would be very surprised if they followed up with you to tell you when it was fixed (although, that would be great service)

Edit: just to add, the software dev on site can review customer services logs asynchronously, he shouldn't need to be the one actually working the customer service queue

This. Is what I do, exactly!

most of the times, I work _with_ the client's in house dev teams so that they can take over when we are done. I _love_ this model as everybody wins.

Key is to staff with the right people offshore.

Someobe local with the talent to drive product, mentor technical teams and manage a remote client is probably going to be either very expensive or a hoy commodity or interested in founding their own company. The combination of these skill sets isn't exactly common.

So, if you finding someone like that, how are you going to convince them to work on your problem?

(3) is also a significant problem for competent technical teams located in a single city with a substantially lower cost-of-living than SV, possibly even within the US, of course. Locating themselves in SV isn't especially likely to make the core team any better at writing software or generating revenue (unless writing the software depends on making new hires with unusual skillsets or the revenue model depends on developing partnerships with SV companies) but for business models that will rely on multiple rounds of investment regardless of how frugal they are on salaries, conformity to VCs' selection heuristics is far more of a prerequisite for success than effective cashflow management.
BPO: Business Process Outsourcing

(since I didn't know)

Even though some of patio11's post seems like opinion, he is correct on all points.

Regarding item 3, another perspective is that a lot of the outsourcing/off-shoring happens because it is something that is not a core competency of the company. Think any ERP system (SAP, Oracle, etc.) which is basically a CRUD app on steroids. If your company doesn't make ERP systems then you want the lowest skilled bidder doing the work. Is that the case for a tech startup?

It also requires almost the same count of people to offshore the work as it does to do it yourself. You need someone who can interface with the offshore team, answer questions about requirements (if they are even asked), etc. And deal with turnover.

You might be asking why any sane company would do this then? Simply cost but also accounting rules. When a company buys a service from another vendor (like buying bandwidth) I think it shows up differently on the books than when they have an entire department of people doing that work. That entire department needs to have retirement plans, benefits, vacation time, etc. and they show up in the employee count reported to shareholders. This nuance is probably why the counter-intuitive stock price increase happens after a massive layoff.

Someone who want to take advantage of this income gap would probably be better of starting a company in Asia. Since the web is global you can sell to customers in nearly any country. It might be good to target the domestic market first though, and then expand abroad.
How are their English speaking and communications skills compared to developers in the US?
Most developers have good knowledge of English, Lets use IELTS for this, I guess scores are in range of 5-9 and arithmetic mean is somewhere at 6.0
There are several factors but the biggest one was India, I never understood why software quality from India was so poor. Honestly, it made no logical sense, here is a population that has a group of individuals that are for whatever reasons fairly strong in STEM. It seemed inconsistent, until one day I met a developer named Karthick, Karthick could code and was a passionate developer, he was everything that India software quality was not. So I asked Karthick about my observations and why software coming back from India was so poor. What I found out amazed me What I thought was a complex problem, was actually a problem of incentives. See Karthick told me that in India, a man is measured by how many people he manages. It is a throw back to the cast systems and it is a source of pride. The fastest way to management, in India, is STEM and specifically computer programming. So what you get is a bunch of would be MBA's, getting engineering degrees, that they do not want, to take a job that they do not want, to get a job they are not educated for and are not qualified for. So it creates a fail up environment.

This was the first wave of problems and honestly after the failures of BoA and several other US companies who lost billions trying to save a buck in that market, US companies are hesitant to enter that market again whole hog. They will pick up a developer or two to augment a team, but not many people are sending whole projects over anymore. Everyone has a horror story and it's enough to make most would be bargain shoppers think twice about trying to save a dollar, by trading it for risk.

The second issue is one of tribal knowledge as I call it. People conduct their lives in very different ways from Central Asia to the US. What we take for granted as common knowledge over here may be a uncommon or not even done in your culture and vice versa. When we document systems, we take for granted "common" knowledge and it does not get documented. For example I worked on a system one time for a large hotel reservation engine that had work done in India. 2/3 of the development staff had never personally booked a hotel room online. It ended up costing more to have BA's and Architects document the system, than it would have to have thrown the BA's and Architects in a room with a bunch of developers. In the end what did we do, well we sent our CTO, our BA's and our Architects to India to sit in a room for 2 months at a time until the project was a success. Basically enough from the VP's to declare victory and get the hell out.

So what does it all boil down to, cultural mismatch. As US business homogeny (I don't mean that in an arrogant sense, I mean it in a corporate culture way) and the Internets global village takes it's hold on the globe, that mismatch becomes less of an issue, but someones is going to have to take the risk to prove it out, and unfortunately the generation that smashed on the rocks in India is now in the decision making seats and not many of them have an appetite to try a do over. Especially startups where project failures or delays can kill a promising idea.

There's also the issue where it's considered extremely rude to say "No", so an answer of "Yes" to a question doesn't always mean what you think it does.
I was going to mention that as a third issue, but that seems to be more focused specifically on India. I have not seen the hesitance to deliver bad news from other Asian cultures.
I thought that was what the head bobble was for. It's like the gestural equivalent of telling you exactly what you want to hear.
I've seen international teams succeed and fail. Language barriers are a problem especially when trying to grasp domain knowledge. Most outsourced teams require specs and don't work well without them. Most startups prefer to have some time overlap where they can talk directly and classify problems. And of course there's also the idea in silicon valley that good engineers are a must if you want your company to be aquired by a Google or Yahoo
I have built one startup on "outsourced" labor in India and would highly recommend it. The folks I hired were excellent, and I'd highly recommend them to any western employer. One of them I later attempted to hire at an American company, we just missed the visa window.

I put the word "outsourced" in quotes because I also moved to Pune. So it wasn't really "outsourcing" in the traditional sense of hiring some of "those people" and throwing work over the wall at them - it was really just building a company with people who happened to live in Pune.

It's a great way to get more bang for your buck. Indian devs are just as good as NRI devs and ABCD devs (which most companies already have plenty of) - just cheaper.

Of course, VC's may not like it.

Since I am involved and do use the outsourcing ---> The primary problem with such developments is one that is really deep in the thinking of people. Don't mistake me for saying people are not smart. Many Asians are the smartest of people on earth. BUT there are fundamental thinking patterns in Asia that are damaging all developments there.

It was best summed up to me by a very smart friend when he said, "They are great Xerox Machines." Asians are great at copying and really good at predefined applications but culturally they are trained not to see how to solve problems from the start. They copy well.

A brother of mine discovered this in treaty negotiation. He found certain Asians lack the concept of the Subjunctive or the "If" conditional. This means that while they may use the If statement well in programming they are limited in concept design based upon contingency. This poisons the development in almost every respect. A startup is by nature the "What If" team of industry. This pretty much prohibits the Asians of Asian culture from the process. This is why their children raised in the USA express their native genius and do very well.

If you think price is the issue you bet it is! But buying an "If" thinker is impossible at any price. If you in Asia want to make use of your cheap programmers learn to be "If" thinkers and you will make your own startups there in Asia!

> It was best summed up to me by a very smart friend when he said, "They are great Xerox Machines." Asians are great at copying and really good at predefined applications but culturally they are trained not to see how to solve problems from the start. They copy well.

"They"? Good job over-generalizing one billion individuals.

(comment deleted)
He might have over generalised, but, I too have heard such remarks and statements from several successful American and European business men.

I have no idea how correct their representation of the situation there is, but from what I have heard, because risk taking isn't valued that highly within Asian culture, they tend to be excellent executors but not always that great at thinking up creative solutions to various problems.

Obviously, you have smart people everywhere who achieve amazing things. But in itself it's no surprise that risk taking is valued higher in certain cultures (i.e. American) than in others.

Nomading in SE-Asia I've definitely noticed similar trends which I find hard to voice without also sounding over generalizing.

It's often very subtle but plenty of things where a relatively small amount of investment would have a great ROI but it just isn't done because no-one else is doing it and it works just fine without.

"a very smart friend"

People who are comfortable making such mass generalizations I wouldn't deem intelligent.

Remote development is the absolute slowest way to get anything done. Startups need speed, a lot of the time.

I've worked with every arrangement of developer mgmt on websites I've built. Inside, outside, agencies, freelancers, directly managed on agile teams, separate departments on semi-waterfall teams. Outsourcing works best when you have a lot of predictable work to do, for example (these are from my direct experience)

1) upgrading a CMS in an environment with lots of custom app dev. (Say what you will about how much it makes sense to write custom apps in a CMS; I agree with you). When we decided to prioritize the upgrade over new work, we got outside devs to work alongside the local agile team, to do the more predictable, less troublesome work.

2) Retrofitting secure forms processing onto an existing CMS where (to reduce attack surface) the secure site did not run inside the CMS, but used HTML exported from the CMS (for design/nav elements etc.). I actually think this would have been better with internal staff, but the one-off nature of the project meant that hiring FT was not possible.

I just don't see running a startup that either of these situations (or their analogues) will come up. For a startup you need fewer staff, doing less management and more work, as quickly as possible (most of the time). You need people who get code, get security, can manage a server, can set up a heroku app, etc. WITHOUT a lot of oversight because you are just not prepared, or too busy to do it.

My experience working at a startup that started out outsourced and slowly started adding inhouse developers:

It was mostly a mess.

1) Time/Cultural/Language barriers are inevitably the biggest problem. Want an answer to something critical right now? Too bad, it's 2 AM there and no one's around.

You're going to end up scheduling meetings at insane hours, and someone's going to get burned out on that.

I also had the fortune of watching an email thread where someone used a colloquialism ("Move it over just a smidge") and it took three days to resolve (because of the time differences) what that meant.

2) This is going to sound super snotty, but I'll just say it: There was a definite feeling of "you're still over there because you're not good enough for anyone to sponsor you for an H1B".

In general the really talented developers I met left quickly because they found someone willing to sponsor them. What was left was... well, what was left.

The salary gap is so severe that it becomes a lot harder to say "I want to stay near my family and friends." If someone offered me 100x my current salary to move to, well, anywhere, I'd be packed in 5 minutes.

Can not agree with "you're still over there because you're not good enough for anyone to sponsor you for an H1B".

There are 2 reasons I see now:

1. Living cost ratio. Well, you might get 10x salary comparing to Asian developer, but living cost is not at the same rate. 100x is different story, but again related to living cost, you might jump in there, when you get there you might end up with 101x living cost.

2. Assume every knowledgable person will leave their homes for 10x salary, 7x living cost and they are earning 3x of money and country will end up with idiots, slow development, slow financial growth in whole country. It takes some time for developing countries to be in decent place if professionals do not leave, it takes forever to be in good place if everyone will leave just for 3x or maybe 10x.

> living cost is not at the same rate

I knew this was going to be brought up, but it's not enough to overcome the monumental salary gap. Your example of developers earning "$2k" just made me think that I invest $2k a month, not even what I save in total each month.

The living cost is obviously much different. There's still really just no comparison, in terms of net compensation.

> Assume every knowledgable person will leave their homes for 10x salary, 7x living cost and they are earning 3x of money and country will end up with idiots, slow development, slow financial growth in whole country

That's all well and good, and you're right, but the individual ends up being much better off by leaving. Brain drain, as it's called.

Rhetoric like "do it for your country" is good in theory, but individuals who leave have an opportunity to help themselves and their families out immensely via monetary gain.

It's really, really hard to ignore that.

Actually nope.

Cost of living matters. A lot.

It directly affects the kinds of things you can afford. Out here (in India), I can easily afford: house rent + groceries for a 2 bedroom apartment ( ~2000USD per year ), paying a cook to cook twice everyday ( 800USD per year ), paying someone to clean my house once a week. ( 200 USD per year ) and still manage to save up more than 50% of my paycheck - after paying 30% taxes.

Neither the places abroad offering me to move there nor any of my friends living there have these luxuries. That's why most of my friends working abroad want to come back to India "after making enough money". Especially the married folk, who are expecting babies.

Also the pay difference is really not as high as you'd think it is.Most decent companies (Google, Amazon, etc.. ) here pay you around 40k USD per year for a guy with 3-4 years experience. Most of my freelancer friends here seem to be making more than that actually.

And:

3. The number of good developers is unrelated to the number of H1-B issued

"This is going to sound super snotty, but I'll just say it: There was a definite feeling of "you're still over there because you're not good enough for anyone to sponsor you for an H1B"."

Wow this is precious.

Not everybody wants to leave their country for more money. This is the most ridiculous comment I've seen in February.

> Not everybody wants to leave their country for more money

We're not talking about $100. We're talking about orders of magnitudes of your salary. That's a shitload of money.

When you start getting into magnitudes of money like that, things like nationalities and being close to your family become extremely malleable.

If you wouldn't make that choice: great. I would, and I would bet a sizeable majority of people would be totally willing to move to another country to make 100x their current salary.

Hell, I'd move to Antarctica to make 100x my current salary.

I'd even consider Arkansas.

As an Arkansan, I'm taking a little offense. And I'm not a native, either--I grew up in Florida.

This is the most beautiful state I've seen. I love it.

The financial disparity looks rather less clear-cut when you talk about how you get to actually spend the money though. If your $12k a year pays for you and your family to live in a spacious villa, and a full time nanny for the kids whilst still leaving enough left over to be able to save up for a biannual new MacBook, you're going to get a rude shock when you realise what $120,000 before tax actually means in San Francisco, especially if you don't intend to leave the family behind.

In that context, staying at home suddenly looks a lot more attractive, especially if you're aware of just how rich by local standards you'll be if you manage to build enough reputation as a remote contractor to triple your rates in future.

$12k doesn't go that far. Maybe $25k ;)
Perhaps to westerners and perhaps to you. To other people, that is not necessarily always the case. For example, my family has lived in the city where I reside for less than 100 years. This is my home but it's not my ancestral home.

If I were from India, if my family had a connection to an area that went back hundreds or possibly even thousands of years to a region, if I could live similarly to how I live here on the kind of salary the job pays there, I wouldn't be in a big rush to leave either.

Would I leave this area to make 10x what I earn now? Probably. If I left for 5-10 years, I could come back and retire.

Is there any pressing or burning need? No. Not at all.

Even though I could be persuaded to go somewhere else, there are still limits to where I'd go. I wouldn't move to North Korea, even to make 20x my current income. I wouldn't move to any of the former Soviet republics. I wouldn't move to most of Central or South America. I wouldn't move to most of Africa.

I get it, for you, most of these concerns are trivial but that's simply not the case for a lot of people.

I would love to know where you can outsource things for 100X less than US?

Two more things, what about cost of living? and do you know how tough it is to get an H1B unless you have studied in US. (my guess, no!)

The truth is that the good developers aren't making 100x less in most of the developed countries. Most of the good developers I know in India are earning in 25-40K range with lots of tax benefits. Expenses are less than 10K even if you live a good lifestyle.
In my experience the code delivered by outsourced developers is always of a low quality. It will usually do whatever you asked them to do, but that's it. No other considerations beyond exactly what you've outlined in the requirements will be given any consideration. No thought to future expandability, robustness, etc.

At my job currently we have been working with an outsourced developer as all of our internal developers are always busy but we have other things we want to do. So we thought, hey we haven't tried outsourcing in a while, let's give it a whirl. The results have been on par with every other time I've used outsourcing in the past 20 years.

The end result will probably work for what we wanted it for, but the code is bad. I am not looking forward to having to support it and work with it over the next 10 years. And it's been a ton of back and forth to just try to get the code to do what we said we wanted it to do in the first place.

Two things:

1) You don't outsource your core in business, so outsourcing tech is not appealing for tech startups, period.

2) Typically tech startups are more of a growth optimization problem than a cost optimization problem. Outsourcing to cheaper parts of the US, let alone overseas, usually doesn't increase the startup's growth potential.

Your [1] is flawed because what is core is continuously shifting as the advantages of the knowledge you can get somewhere else exceed the costs.

An example from banking:

"Morgan Stanley has about 500 people employed in India doing research and statistical analysis. About 100 of Goldman Sachs’ 3,000 employees in Bangalore are working on investment research."

http://www.nytimes.com/2008/08/12/business/worldbusiness/12i...

Be careful not to conflate offshoring with outsourcing, which the article does. Some startups will have their own employees overseas, but my point is specifically about outsourcing to other companies.
> Be careful not to conflate offshoring with outsourcing

Ups, thats my fault, lets add offshoring to the title.

1) the tech is rarely the product (so, rarely the core), does the end user care how nice the code is? what's the stack? or that it just works and provides a valuable service?

2) OP's point is that you should spend less on dev and more on marketing thus, more optimized for growth(?)

With all the SV talk about $100k+ salaries, the reality is that in the US you can pick up average developers at a pretty reasonable salary. Think closer to $30k-60k. Add on top of that the cultural issues that make it more difficult to have developers handle other issues throughout the day like client support, writing documentation etc, and you can see how it really isn't that huge of a gap. Remember there is no actual developer shortage in the US unless you are talking about the very highly skilled top tier developers.
Every hire is so crucial early on and one bad hire can really set you back. I know from my experience that early hires are typically done through connections rather than recruitment. I am sure there are very qualified candidates overseas but finding the right guy would be seemingly much more difficult without any prior knowledge or experience with the candidate.

I am sure this is very dependent on the company and technology. But generally every startup I have worked at has depended on a core group of developers early and they usually had some prior history or at least connection.

I can imagine this might be different for founders without a tech background... and anecdotally that appears to be true (non tech founders appear to be more open to outsourced development). That's pure speculation.

Finding talent is one of the biggest challenges facing my startup and most at the moment (and most/ all other start ups I know).

I would rather hire someone who I can meet face to face most days as you just don't get the same dialogue working remotely as you do when you're sitting on the same table. This is coming from someone who as worked as a consultant working mostly remotely for the last 6-8 years, and I did a degree remotely.

If I can't find a quality JS dev in London (it's not as easy as you would assume, but then I've only just raised money), then I'm willing to outsource portions. Still have a number of options!

Retained value.

The reality of a lot of development is that you, as a developer, learn about the domain in which you're working, and also grow your skills with each subsequent project you work on.

As an employer, it's desirable to pay someone to do work, and then to have that person do more work for you, and as they know the subject matter better and better and as they progress as a developer, the value they present to you grows. Additionally, this is good for the employee, as unless you're in a moribund steady-state company (i.e. so long as you're in a startup) you're there for the journey, and you develop in step with the company, and get to witness and learn a lot of stuff "at the ground floor".

Conversely, if you hire a contractor, the moment they're "done", that value walks out of the door, and if you want to do further product development, you need to train someone up, get them familiar with the existing codebase, and so-forth - and this is expensive, and if your contractor hasn't documented stuff thoroughly - you're up the brown creek without a propulsion instrument.

Seeing contractors/outsourced dev as a "cheaper" option is a false economy. Sure, it might be cheap in the short term, but it's a hell of a lot pricier in the long term.

Outsourcing works if you're able to define the requirements of new features in extreme detail, covering every nuance and edge case. This is the opposite of what start ups are all about: incremental steps and iterations.

The result of outsourcing in start ups frequently ends up with a most of misunderstanding and back and forth. Code not written with potential business needs in mind, and everything that goes with that.

It would be cheaper if it took the same time as doing locally and provided same level of quality. This usually doesn't happen. So what's saved in developer salaries is spent in founder/product manager time and delay of release.

Take the following with a grain of salt, as I've only seen this in action once.

The language barrier is pervasive even if the consultants speak English fluently. At my last company, we hired consultants from Belarus and besides a small accent there were no problems communicating with them. However, when it came to actually coding, the differences in language were more visible.

It was mostly simple stuff. the difference between an "Order" and a "Subscription". The knowledge about western addresses (we had to explain what a postal code was). You could always tell if it was one of our consultants that wrote a given piece of code.

That being said, it was effective. We accumulated quite a bit of technical debt that we later had to pay off, but by any metric, it was successful. They were very competent programmers (one was amazing!) and I wouldn't hesitate to bring them onto another project. But I would try to micromanage more.

There is a lot of arrogance in this thread. Thanks to better exposure through HN,Github etc , Indians devs are levelling up fast and I predict that in 4-5 years the quality gap will become almost non existent.
It's not so much as arrogance as it is just being honest about the quality of outsourced work. If you were worried about offending people, you would come up with all sorts of excuses for not outsourcing work. But honesty is not always the nicest thing to hear. I've been working with our outsourced team in Bangladesh and their quality of work is much less rigorous than that of our in-house team.

"Indians devs are levelling [sic] up fast and I predict that in 4-5 years the quality gap will become almost non existent."

You may be correct but the Original Post is talking about now*. Also, you seem to agree that there is a "quality gap".

I completely agree about there being a quality gap.

The reason was that Indian IT was dominated by body shopping companies that bid for grunt work and then threw quickly trained engineers at the problem , some of whom never even studied CS.

This is changing now as we have an ecosystem of smaller companies which hire better people and have better processes and incentives. It will take time for the effects to be felt but I am confident that we will improve thanks to the better exposure we have , and learning from HN and Github.

This isn't restricted to India though. Western developers should brace for a lot of competition in the years ahead. Eastern European developers are already almost as good.

Indian devs certainly level up fast, and I wouldn't be surprised if the number of great engineers born in India is already significantly larger than the number of great engineers born in the USA.

But, and this is a big but: large numbers (the majority?) of those great engineers end up moving to the USA anyway. And, just as with evaporation, what's remaining is cooler than what left.

If your site is very well specified, static, and small, you might get away with outsourcing it.

A lot of startups need to be constantly iterating. That's how they make their product. Throw something up, see what the feedback is, change it. You can't do that if the devs are not very close to the feedback. And that generally means living somewhere near the customers, with attendant costs.

As someone with extensive experience of working with offshore development teams in India and China (I'm from the UK myself), these reasons spring to mind:

1) Language barrier. Remarkably, still a major issue even in tier-1 cities in China. Not so much of a problem in India, but it's still there to a degree.

2) Quality. This is a big one. I've worked with some great developers and some really, really terrible developers. The former seem to be a rare breed. I can interview dozens of pre-screened candidates before I find someone who is any good at all. Never assume what is written on CVs/resumes as truthful until you've assessed candidates!

3) Culture. Don't underestimate the impact of this one. I'm a seasoned traveller, but working with people from other cultures can still be challenging at times. In my experience, 'face' is an issue when working with Chinese developers, and lack of directness and pro-activeness is an issue when working with Indian developers (sweeping generalisations, I know; just my experiences). These can have a big impact on your projects if you are not on top of it. Something else to consider in India is that it's very difficult to find people with many years of experience, as most people there don't see software development as a career - it's seen as an on-ramp to management positions, and there is a stigma attached to being a developer for 'too long' without being promoted.

4) Time difference. This can work for or against you, depending on what you want. I'm a firm believer than the best way to work with offshore developers is to work together, so unless one side is willing to change their working times, it's certainly a problem for me.

5) Previous failure. I've found many people have tried doing offshore development 'the wrong way', and it's left then disillusioned. Simply throwing a specification over the wall to a remote team will not work. Ever. Failure guaranteed!

I want to finish by saying it can work, if done properly. Over the past few years I've built up a team of 8 good, dependable developers in India. I've done this by working closely with them, spending time with them in India, conducting training sessions, buying Pluralsight subscriptions for them, encouraging direct dialogue and pro-activeness, mentoring, and generally spending a lot of time communicating. Of course, this all takes a lot of time and effort (and some money too!).

I work as an Engineer at a VC backed ($20m from two rounds) product company in the US. We used outsourced Engineers for most of our developers. We are located not located in Silicon Valley but some of our VC's are from the valley.

Our founder & CTO has experience with co-founding another successful startup ($25-$50 million in revenue) with an outsourced engineering team, which I also and many of our team members also worked at.

The engineers we have employed in Kiev are very good. However, working with outsourced engineers is still very challenging. One of the things that allows us to be successful is our experience with it and what we've learned from our mistakes at our previous company. I wouldn't recommend it for your average company.

Here's a question that will help:

Many of the major outsourcing-providing countries have far more developers than even the US, so why aren't those outsourcing countries at least creating a ton of early stage startups?

My answer, as someone currently living in a major outsourcing providing country -- doing developer consulting is EXTREMELY opposite from making a startup, in many of the small but most important ways. Having a ton of raw developer resources, as many of these outsourcing countries have, is not the bottleneck.

Only working strictly as an outsourced developer will teach you to optimize all the wrong things.

I have had both very positive and very negative experiences with outsourcing development. Regardless of country including within the States.

Yes, we can find cheaper labor in other countries. Yes we can mostly overcome language issues, time differences etc. But one thing that is not insurmountable is the number of times the tech I have paid for would wind up in other peoples hands. The problem is not unique to other countries as it happens within the US too, but at least within our own legal system there are ways to protect clients and ourselves better. When dealing Internationally, the chances for a startup to guard their intellectual property and competitive advantage is far less likely.

And honestly, the companies that have been most successful in outsourcing Internationally, generally have a presence in Country. Microsoft, Oracle, GE among hundreds of others (I did this for/with GE for a time period). For a startup splitting a small team Internationally to try and save on what should be a core skillset and competitive advantage just doesn't make sense. Not to mention, the only thing of value for a startup early on is the team they assemble. If that team is not dedicated, is out sourced and worse yet, outsourced Internationally, the startup will struggle to gain the attention of investors if that is what they desire.

Last point, if you are bootstrapping then the equation (and risk profile) can change. It may be to your benefit to try and have some (IMO non-core) components of your software built offshore. Just takes some management and willingness to spend the extra time on documentation and communication. Additionally, for a well funded startup in later rounds they may choose to offshore parts of their development to help move things along because they have the ability to take some risk on there, and their core IP is already developed.

The biggest reason is that a solid engineeering team, local or remote, needs to work directly for you and not be a subcontractor. Setting up a remote office and hiring staff is a very, very time-consuming and risky process.
> Setting up a remote office and hiring staff is a very, very time-consuming and risky process.

This could be solved with specialized agencies which finds/tests/interviews/guarantees code quality of candidates.