Shane Neman

View Original

Ready To Build An Offshore Tech Team?

My Tips For Finding the Right People to Build Your Next Great Idea

I have turned to every country and continent known for outsourcing talent. In Asia-China, Vietnam and India. In Latin America, Argentina and Colombia. Foreign outsourcing always seems like a great idea, right? Everyone says, “Oh, hire a bunch of smart people in another country for half the price!” But in reality, the challenges that working with offshore talent pose doesn’t make it quite that simple.

Throughout my career, several of my attempts to build an offshore development team ended up in failure. Despite having a similar level of education, when people come from different backgrounds there will inevitably be major cultural impediments. This may show up in terms of opposing work ethic or simply not understanding what conducting business in the #1 economy in the world entails. The language barrier is certainly one obstacle but the cultural challenges of working with foreigners is a completely different aspect that has to be considered.

Through much trial and error, the countries I found to be the most successful when it came to developing offshore partnerships were Eastern European nations like Poland, Belarus, Russia and Ukraine. They have the type of young talent that can put together a rock-star development team. To begin with, the focus they put on STEM makes them excellent software and technical engineers. They can create and think in ways most others cannot. They also share many cultural similarities with the US because of their widespread use of social media - being active on FB and Instagram enables you to speak with them as if they were born and raised in America, using most of the common idiosyncratic colloquial terms. They get the lingo, pace, humor, and overall mannerisms. The key is to establish a clear communication channel that will allow you to guide them while you are halfway around the world in your US based office.  

When I started Offyx in 1999, a web portal that delivered applications through the cloud using Citrix technology, I was both lead developer and CTO. We hired offshore devs to help offset many of our needs and given my positive experience with them, I actually ended up bringing most of them here to the US. At that time it was much easier (and cheaper) to import great talent from overseas to your company using an H1-B Visa. 

When I created JoonBug, a suite of software solutions that married all aspects of the offline events world with the digital ecosystem, I began by building the initial web system. I soon realized that If I wanted to get everything I needed done in a reasonable amount of time, I would need additional help. While the extra support was necessary to help fuel the growth I envisioned, it did not require a full-time in-house developer so I hired an outsourcing company based in Russia. It worked out well because I was giving them remedial tasks while I was still running the majority of the project myself. If you have small side-projects that simply need maintenance, it’s easy and useful to go with the traditional foreign outsourcing company route: you pay them a monthly fee, describe the project or task, and they just do it.  

When I started EZ Texting in 2006, a web-based platform that I built to enable businesses to affordably and easily run SMS campaigns, I soon realized that we needed in-house engineering talent. Although I was the one who initially built the platform, it wasn’t feasible for me to continue working on expanding and running the software alone while simultaneously trying to scale and oversee all other aspects of the company.

My first full-time candidate search led me to hiring Lyuba, who was visiting under the terms of a work visa from the Ukraine. She instantaneously made a huge positive impact and within one week I realized that I hit the jackpot. Lyuba was able to fix bugs faster than anyone, develop a more scalable product, roll-out tons of new features, and most importantly, we did it together in record-time.   

At the time I was living in NYC, which wasn’t yet known as the tech hub it is today by any measure. There wasn’t much of a tech community; companies like Google or Twitter weren’t a presence in NY at all. It was incredibly difficult and expensive to hire talent, which I find still to be the case now. Ez Texting was a fledgling business and I didn’t have sufficient time to recruit since I was wearing a hundred different hats running the business. We also couldn’t afford a big office with a ping pong table, vending machine with unlimited candy, or beer on tap to lure talent!  

After my positive experience from JoonBug, I decided to go with an outsourcing company from Eastern Europe to scout for the best talent. Initially I hired a traditional outsourcing company (like I had done before) but this time I wanted them to focus on the major projects. I tried to rely on them as I would an in-house software dev team but within three months I had to fire them. They were giving us shoddy code that failed to function properly and it was being delivered over budget and way past deadlines. They would deploy live applications without properly testing them that didn’t work. It was a total nightmare.

The reason for these major drawbacks was due to the opacity of the traditional outsourcing model. As a client you have no idea how things are working under the hood. Developers assigned to your project might be rotating every day or week depending on the different clients their company has to appease and focus on. Someone else is picking up the slack and covering for yesterday’s coder. It’s not efficient, it causes errors, and simply does not work. Usually your point of contact is a project manager but as we repeatedly learned the hard way, they aren’t fully bilingual, so things inevitably get lost in translation. I realized our arrangement couldn’t work. After all, we were a tech company and our success deeply relied on our technical talent truly being part of our team and not an employee of a different company. So what happened?  

Lyuba had two University friends living in the Ukraine that we hired remotely. That worked out really well because we communicated on a daily basis keeping us all on the same page. Despite the distance, each member felt like we were all part of a unified team. We were in a different time zone but we had enough overlap so that morning conversations were handled and night time messages were taken care of by the next day. While the flow and vibe was great between everyone, as we started to grow it was proving to not be a scalable model. Having people work from their home wasn’t efficient enough and we didn't have the collaboration tools like Zoom and Slack that we do today. 

The tech sector began to boom in NYC during this time and with big companies coming to the city, there was a severe lack of engineering talent available. If you wanted to hire a junior developer it would cost at least $150K a year. Yet here we were paying senior developers in Ukraine about $30K a year; plus they had PHDs and could solve brain-crushing mathematical theorems. While we did make a few smaller hires in NYC, we ultimately ended up going to Ukraine for a few months to set up shop there.  

After arriving in Kiev we quickly realized that it is nearly impossible to get an office lease unless you are a Ukrainian company. Besides attaining the physical office space, other challenges including banking, payroll, human resources and taxes were next to impossible as a foreign company. It was clear that instead of opening our own office and hiring developers, we were going to have to partner with an existing development company. This led us to meeting with some of the big Ukranian outsourcing shops like Global Logic and Info Pulse. At first glance they seemed impressive with their beautiful offices and a client roster that included tech giants like Amazon and Google. But there was one major problem: they only wanted to work in the same opaque outsourcing model of ‘tell us your technical requirements and our team will deliver it by a certain projected time’. It felt like I had hit a dead end and we were ready to pack up and go back home.

Me & Lyuba in Kiev

With luck and perfect timing, I was introduced to a startup outsourcing company that was touting a new model of doing business called “Cost+.” The arrangement consisted of them taking care of recruitment and initial screening of tech talent. We would then be able to interview and negotiate the salaries and compensation packages of the people we chose to hire. They would also take care of HR, office space, and equipment. Once the costs of each employee was determined, we would then pay a negotiated premium of somewhere between 20-30% to the outsourcing company which would constitute their profit margin. 

This kind of setup completely resonated with me because it broke through the opacity. I was able to determine exactly who I was hiring and what their capabilities were. This enabled me to build an efficient team who would all work from the same physical location. I finally had clear insight into my development team and I could manage all my hires and allocate, increase and decrease resources as I saw fit. As a result, our team in the Ukraine was treated exactly like our team in NYC. In everyone’s minds and spirit they weren’t outsources anymore, but Ez Texting employees. The final product was a kick-ass productive and cohesive tech team at less than half the going rate price in the US.

Fast forward to two years later when EZ Texting was being acquired, the acquisition team was in disbelief at how we were able to build such an amazingly scalable and robust software product on a tiny budget with a super efficient team of only 15 techs, 12 of whom lived across the globe. Their current tech team was bloated (about twice the size of mine) and they were paying almost triple the amount per team member! Finding that magic formula on how to cost effectively build that team became one of the most desirable aspects of the business for them. Years after the acquisition, the Ukraine team is now triple the size it used to be.

Here are my 7 key takeaways in order to obtain the best offshore development success:

  1. Talk the Talk
    You need a lead developer here in the US that is bilingual and fluently speaks the language of your outsourcing team. You also need a team leader in the offshore office that is fluent in English. You need TWO team leads so that each side is accountable and knowledgeable about each other. This allows for you, as the CEO, and other members of your US team (like your product managers) to effectively communicate with the other side.

  2. R.E.S.P.E.C.T.
    Make sure the owner of the outsourcing company speaks English very well or ideally, is a US expat. The way people conduct business in other countries is very different from the US. We have strict laws, guidelines, and common business understandings here that they need to RESPECT. What’s acceptable in other countries may not be acceptable here. Although there are inevitable cultural and legal differences, the biggest issue you face is that if something with your team goes wrong overseas then there isn't much legal recourse for you. Hence a common cultural understanding is a big factor in selecting a company to work with. There are a few ways to test if a prospective company operates in the same cultural fluidity and fits your expectations. For example, you can check how responsive they are by emailing them and calling them during regular hours as well as in the late evenings and on weekends. Will they go above and beyond? Is the owner and team lead willing to give you their cell phone number and do they actually answer when you call/text? (I’ve done business with companies where the norm in their country was a 3-5 day response period which clearly wasn’t the right fit for me!). Finally, always ask for at least 5 references for customers that are located in the US and it’s imperative to call the references with a list of pre prepared questions.

  3. Hand Pick
    Make sure you or your HR team are personally interviewing, selecting and negotiating the terms of employment of your overseas team members. Once they are hired, they need to feel part of your company (not part of the outsourcing company). That included giving them EZ Texting paraphernalia (stickers, t-shirts, mugs, etc), making sure they were provided with health insurance, @eztexting.com email addresses, and we added their photos and names to the “About Us” section of our website. I went as far as designing and paying for a smaller walled office within larger offices of the outsourcing company we were using. Our section housed all the developers, admins and techs who worked solely for EZ Texting. There was a large EZ Texting sign on the outside walls, team members needed a special key card that let them into the office, and we stocked it with the snacks, goodies and drinks that our team loved. Going that extra mile made the biggest difference in team performance and retention.

  4. Get Physical
    Get on a plane and physically go to your team at least 1-2 times a year. Spend a week with them and let your other team leads go too. Let them actually see a live person and know that you care about them and you come to see them. Every few months, I’d also pick one of them to come to the US and work here!

  5. Reach out and Touch Your Team
    I set up an “always on” Google Hangout teleconference system direct link in our meeting rooms between NY and Kiev. This way we could see them and they could see us. It not only held people accountable (i.e. if no one is in Kiev office, what is going on?) but it allowed us to have a little fun and wave to someone working on the same project a few thousand miles away! It was the closest thing to just walking over to a Kiev team member’s desk and talking to them directly (which in my opinion, is still the most productive way to work together).

  6. The Greatest City is the World is Generosity
    Bonus your offshore team just like you do the other local employees. If your in house team gets more when they hit high goals or as their tenure goes up, so should your offshore members. Although you are technically outsourcing, treating them the same as all your other employees will likely guarantee a higher retention rate. There is intense competition for good developers in the offshore outsourcing space and the last thing you want is a developer that has been with you for several years jumping ship for another better paying outsourcer! It’s also not only money that keeps people happy. Both your onshore and offshore team has to feel like what they are doing is important and that they are making a real impact. I always included our offshore team in our monthly company newsletter that contained information on not solely our product development, but also about our marketing and customer service efforts, business development, and our financials. That enabled me to spotlight how important each team member’s efforts are and how their roles fit into the entirety of the company. For an all hands meeting, I included them and they were exposed to all aspects of the company, not just the specific project they were working on. When I assigned tasks to the offshore dev team, I would alway justify it with an explanation on why it's needed and it’s higher purpose. I would give examples on how the feature or project they were building would help us reach our ultimate goals or help our customers.

  7. Have An Escape Plan
    If you do have a contract with an outsourcing company, make sure that you have an out clause of either 30 or 60 days. You also want a variety of options such as being able to leave to another firm and buy out the developers you already hired who are acclimated to your company. Most outsourcing companies will agree to this because once you leave they won’t have many new projects for your team and will most likely have to let them go anyway.

Setting up and navigating an outsourcing team and an offshore office can clearly be complicated with so many different factors to consider. If anyone needs additional help with the process or references, feel free to contact me and I’ll be happy to help!