The average salary for a software engineer in Silicon Valley is over $100k per year, with similarly high rates in expensive cities such as New York, Sydney, London etc.
If you live in an expensive city and can’t afford these rates you might want to consider hiring globally. This doesn’t necessarily mean hiring someone lower quality.
At Time Doctor, I’ve been hiring developers around the world for many years now. Google recently “validated” our hiring methods by offering a job to a developer that we’d hired in Bangladesh. I often get questions from our customers and contacts on how & where to hire offshore. Here’s an overview of different approaches I’ve tried.
This article is split into 4 broad sections:
When you’re hiring overseas, the first decision you need to make is whether you’re going to have your developers work together in a central office or whether they’ll work remotely. If you’re hiring only one person you can skip this decision.
There are benefits and drawbacks of each approach.
So what’s the answer? I don’t think there is one answer for everyone; you have to make the decision yourself. For our company (with over 50 staff), we have everyone working from home or in their own personal offices. I love this arrangement and wouldn’t want a major central office for all the reasons I’ve listed above. But I know that a lot of serious entrepreneurs end up in an office or use a BPO (“Business Process Outsourcing” company) to hire their staff for them.
After you have made this decision, then you have several ways to find great people.
Although I’ve hired in a central office in the past, I have much more experience hiring a distributed team and have been doing it for many years.
Your budget will be a factor in which countries you can hire from.. Are you trying to hire a developer in the Philippines at 40,000 pesos per month (a bit under $1000 USD), do you have a higher budget ($2-4k/month), or are you willing to pay western salaries of $6-10k+ per month?
If you’ve got a higher budget, the following two websites are amazing for finding developers:
Some tips for posting a job in StackOverflow in particular
I believe that running a coding competition is a great way to find people. I’ve not personally tried this but if Google, Facebook, Microsoft and most of the tech giants do it, it’s probably a good option. You can sponsor a competition on sites like Hacker Rank (affiliate link), but this is not cheap (it will set you back a few thousand dollars).
It helps to keep an open mind when considering where to hire. Sergey Brin, one of the founders of Google, is from Russia. There are great people from dozens of countries around the world working as founders or in top technical positions for some of the more prominent tech companies. My point is that you can find great people anywhere.
Having said that, my experience is that eastern Europe has a higher signal-to-noise ratio, so that a larger percentage of the applicants will be of a higher quality and experience level.
I find that it’s harder to find great developers in India. There are plenty of amazing developers in India but my experience is that they are less likely to be the ones that are applying to your job post, and that you’ll get a lot of very average developers applying from India.
If your budget is high enough, hire from everywhere. If your budget is more restricted consider hiring from some of these countries:
If you have a lower budget, you’re also more likely to find a more junior developer. So you have to seriously consider if you’re going to get the results you want by doing this. The level of developer that you need depends on what you are trying to build. If you have a low budget then here are a few websites where you can hire people:
These aren’t options that I’ve tried, but I’m including them for completeness:
If you’ve decided to go the office route there are a few ways to set things up
A BPO will usually charge a fixed percentage on top of the salary you’re paying your developers. The BPO wll be responsible for hiring under your specifications. If the cost of using a BPO isn’t an issue for you, then the main thing to consider is how effective they are at hiring great people.
I’m not personally a big believer in letting another company handle your hiring as this is a critical part of your business. Even if you do hire a BPO (or a recruiter) to do it for you, it’s important that you participate in the process and evaluate the candidates in depth yourself. So in my opinion BPOs are usually not worth the extra percentage that you’ll be paying.
The feedback I’ve heard from friends who have used BPOs is very mixed. Some love the experience and others haven’t gotten great results. It really depends on the BPO and the person within that BPO who will be responsible for recruitment.
I don’t have any recommendations of BPO companies however I can suggest if you’re hiring a BPO in the Philippines to check out Mike’s Manila Tours which is a 3rd party independent service (they don’t take commissions) that will take you around to visit all the different BPO operations, and also show you how to find a company to handle your seat leasing.
Seat leasing companies usually charge a fixed monthly cost for each employee that you have. Your employees will share an office with other businesses, and the seat leasing company may also be able to handle basic HR, payroll and local payroll taxes. This should work out to be cheaper than using a full-service BPO.
What seat leasing companies don’t do for you is recruitment. So what to do? You can either do the recruiting & hiring yourself, or you can hire a recruiter who will find someone for you at a fixed cost. If you hire a recruiter, make sure you get a good one (not easy!).
I personally do not like this option at all for several reasons:
I think that for larger companies with 100 or more staff it’s something to consider, but for the vast majority it’s not a good option.
One option you can consider is to build an office around your initial hires. So if you manage to find a great developer in Ukraine for example, then subsequently look for future developers also in Ukraine. Then eventually set up an office or enter into a seat leasing arrangement and have everyone come into the office.
You can also be flexible and let your team mostly work from home but have them meet up once or twice a week. This could give you the best of both worlds, having the flexibility and low cost of hiring from home, but also having regular meetings in person.
What I’m referring to here is hiring a company with several developers to handle an entire project for you. This is a really bad decision if the technology they’re building is central to your company. If you hire a pre-built team there’s an inherent conflict of interest. Their interest is to do the minimum work necessary to maintain you as a client while going off searching for more clients and more revenue. Your interest is to get the best possible development team that you can, and you want your developers to be dedicated to you and you only. The problem is that the developers work for their direct employer. Since you haven’t hired them directly, they’re not fundamentally loyal to you.
The exception is where you have a defined project and where the technology is not the core of your business. In this case it’s ok to outsource it to a person or a team (perhaps at a fixed price) to just get it done.
If you’re not a developer you’re going to struggle to evaluate candidates. In fact you’re likely to have absolutely no clue whether someone is a great developer or not. My personal experience is that the most eloquent and well-spoken people are often not the best developers. I could barely understand one of our best developers when I first met him, but now after working several years together, his English has improved a lot and he’s a great member of the team.
There’s a specific process that I use for all of our technical hires which is to give developers a test from Hacker Rank (affiliate link). This is a service used also by companies such as Facebook, Yahoo, Evernote, Airbnb and VMware. Hacker Rank will give your applicants a very difficult programming test, and when they submit their code it automatically checks if their code is correct or not. It costs $199/month to give 25 developers per month the test. Hacker Rank can also create a custom test for you for around $1,000.
What I do is give our applicants one of Hacker Rank’s custom tests before we even interview them. This gives me a good idea whether the person can solve difficult problems. The vast majority of applicants are willing to do the test.
Here are the stats from our latest hiring round:
Note that I didn’t personally interview anyone. I’m not a developer, so what do I know? Plus I didn’t have the time to conduct all of the interviews.
Below are some of the specific questions we ask during the interview. Most of the questions we ask are technical questions about PHP and I’m not including those here:
Introduction of the company and what I do within the company
Communication and remote work questions
Whoever you hire, it’s a good idea to consider the first 1-2 months a trial. This gives both of you a chance to get to know each other and make sure that it’s a good fit. Even if you’re happy with each other, the developer may find that they dislike working from home if it’s their first experience doing so.
Because the developer may not stay beyond the trial for whatever reason, it can be a good idea to consider hiring two people for the job on a 1 month trial and then selecting the person you like best at the end of the month (assuming that one person hasn’t dropped out).
Another way to run a trial is to start by hiring the developer for a fixed-priced project. This allows you to get something done at a defined price and also test the person before hiring them for more on-going work.
If you’re not hiring into a central office, the best places to hire someone for project work are Upwork or Freelancer. One thing to look out for with this approach is to make sure that the person is interested in working full time after the initial project work. Often developers who are working on a project basis may not be as reliable or willing to work full time with you as they already have their steady base of clients that they’re doing project work for.
If you’re hiring people directly, you’ll need to figure out how to pay them. It’s really not that difficult and there are options to pay people in any location around the world. We’ve written a series of articles on how to transfer money to employees in other countries. Here are the links:
In Silicon Valley there is constant talk about the shortage of good developers and the war for talent. Of course! When you have Google, Apple, Microsoft and hundreds of other companies competing for the same talent, it’s an incredibly competitive market. If you broaden your horizon and consider hiring from any country and any city around the world, your chances of finding someone amazing are much higher.
In my view it’s very restrictive to only consider hiring from the one location. The whole world is your oyster, so take advantage of it!
Oh, and once you hire some offshore developers, make sure you use Time Doctor (our software) to manage them 😉