7 minutes reading time
Are US Companies Hiring Software Developers in Latin America Directly?
Probably sometimes, but whether this is recommended or not as a strategy to get more miles-to-the-dollar for your engineering talent (working with a freelancer versus working with an established software services firm) will depend.
I have been in the software services industry in Latin America for 15 years and can certainly share some pointers that apply to hire nearshore talent in Colombia, Argentina, Mexico or Latin America in general.
Let's consider three scenarios:
Hiring Freelance: If you have a small project in mind, you could certainly hire a freelance engineer one-off. There are plenty of sites that allow you to search for freelance talent in the LATAM region (Guru - Hire Quality Freelancers and Find Freelance Jobs, Freelancer - Hire & Find Jobs - Encontrá freelancers y trabajo freelance en Latinoamérica and Workana are some). As is usual, these sites provide ratings for each individual, giving you some assurance that you will land a reasonably responsible engineer at a fair price. However:
[Want to know more about PSL? Contact us today for a 20-minute conversation about how we can solve your software challenges.]
- Freelance engineers can be "free spirits"... don't hire freelance if your goal is to develop a long term project, and have a copy of the code on your servers at all times, in case your freelance engineer suddenly decides to take her next trip to backpack the world.
- If your project requires more than one resource, I wouldn't recommend going the freelance route. It is hard to coordinate freelance talent that is not co-located, and harder still to get very independent engineers to agree on a methodology that can organize and standardize their work (who will be the senior leader?; who will call the shots within the team?; who will set a coding standard, etc.)
- If you are hiring freelance, you'd better know enough about engineering (or have someone who does at call) to check the quality of the work. As much as you might end up with good code, you might end up with an application that is a sour lemon that, despite looking good on the outside, can be a nightmare of bugs and messy architecture that may explode as your application use takes off.
Setting up a company to hire talent directly: For larger projects or longer-term engagements, some companies venture into creating a legal entity in a nearshore country and hiring local resources directly. There are some advantages and disadvantages to this approach:
- The company has total control on the coding standards, methodologies, and tools that are utilized during the project.
- The company can closely monitor the quality of the work being produced and has more leverage to ensure that the required engineering standards are properly met and maintained.
- The company can influence the work culture of the team, which has a direct impact on team morale and --of course--on team productivity and permanence (churn with freelancers is difficult to manage!)
- The company gets to train talent in its business domain that it can keep and leverage for a long time (in today's day and age, a good engineer that stays with the company is certainly "the gift that keeps on giving!")
- Setting up shop in Latin America is not easy. There is a lot of red tape that needs to be managed, which means overhead in specialized administrative resources that are an added cost to hire out or outsource (accountant, HR manager, lawyers, etc.).
- Latin America is highly particular about its labor/employment legislation. Expect to pay an important percentage of each engineer's up-front salary in mandatory "fringe benefits" (state mandates insurance, retirement bonus, "Christmas bonus", etc.). Although it varies country to country, for every dollar you pay your engineer, you might pay the local government between 25 to 40 additional cents (and if you don't, you are breaking the law and will get sued).
- All the onus of seeking and hiring good talent (which implies building a reputation or paying extra while you acquire it) and retaining good talent, falls on you, not to mention setting up technical infrastructure, desk space, social events, training, etc. If you are not committed to this strategy for the long-term, if you do not need a large team (I would venture to say at least 50 people), or if you cannot afford to invest enough resources and time to gain momentum in your own foreign engineering office, then do not go this route! If your company or project is not exceedingly sexy, remember that in any country you will be competing with large, established players with a solid reputation, who have a head start in attracting the talent you seek.
Partnering with a qualified software services vendor: This option involves choosing a partner with an established reputation in a nearshore location, and having the partner select and deploy a team to develop your project or enhance your engineering bandwidth for the long-term.
- If you choose the right partner, you can leverage the partner's reputation and talent pool to quickly hire and onboard a team of savvy engineers. Staffing via a partner should also be significantly more flexible, allowing you to augment and decrease the size of the team with little friction over time.
- A professionally competent partner will deploy engineers that are fully trained and follow a coherent and monitored methodology when working together. Whether it be agile SCRUM, Kanban or some other approach, you will have a good chance of running a project that is predictable in quality and that provides standardized, documented code that is secure, maintainable, and will provide good value during its lifetime.
- A serious software firm will guarantee the quality of its services. Typically they will replace engineers that are not performing per expectations, or even reimburse you for mistakes made outside of "generally accepted professional standards" (not to mention that they carry cyber insurance, error and omission insurance and other coverage for more "catastrophic" risks) --ultimately, you can sue a serious firm and have a chance of addressing grievances and claims in court, which you can seldom do with a freelancer or with your own employees.
- There are thousands of potential software vendors out there and do not be surprised if their web-pages all look promising. How to choose, then, "the right one"? And what is more complex still, the right partner for what? Each partner caters to different types of clients, technologies, project sizes and follows a different methodological approach. (At PSL, the software services firm I work for, for example, we seek long term relationships (1 year or more), work in medium to large projects (at least 6 engineers in size, and 12 to 20 on average), prefer challenging engineering projects in modern languages, and follow a rigorous and technical agile process (TDD, continuous integration, DevOps) in three main platforms: Node.js, Java, .Net).
- Choosing a wrong partner might make your project too complex (meaning your partner will not perform to expectations or deliver quality code) or too bland (meaning your partner's engineers will get bored and will churn). Hence there is a risk in not choosing wisely (For more tips about choosing the right outsourcing partner, you can read my other answer here).
- Not all partners are able to deliver a team culture that is compatible with your way of working. Cultures vary by region, of course, but also vary a lot by company. If you end up with a partner that is solid technically, but exhibits poor communication or hides questions and mistakes, your project could explode under you. Hence, when making a final selection, take your time to meet the partner's senior team as well as several of the partner's engineers --interview them, talk to them, ask them to walk you through a real project and how they interact with their existing clients. There is a lot you will learn in these early interactions that will indicate if this is the right business relationship to pursue.
- Finally, purchasing services from a partner whose deal and prices look "too good to be true" is probably worse than somewhat overpaying. "Cheap engineering" is like getting a cheap fix on a broken leg --you will lament it for the rest of your waking life, or need to have it redone at great cost. Be aware that some software firms tailor their value proposition towards "sticker price" alone, yet they cannot perform "magic": hiring great engineers, training them well, and keeping them comfortable using solid infrastructure, costs money anywhere in the world. This is ultimately reflected on rates. On the other hand, good engineers that are well managed will be more expensive but an order of magnitude more productive and predictable. When in doubt, get rate quotations from at least two firms in the same country to establish a pricing baseline.