iThe discounted hourly rate
The classic. A vendor offers a headline rate well below market and locks the project on a time-and-materials basis. Hours mysteriously expand. By month three you have paid market rate anyway, and the relationship is sour. The fix is structural: fixed-price for fixed-scope work, monthly retainer for ongoing work, and never the third thing.
iiThe invisible subcontracting chain
You signed with a Hong Kong vendor. The first developer is in Shenzhen. The second is in Hyderabad. The third is a freelancer none of them have met. Each layer takes a margin and adds latency to every decision. Ask, in writing, who specifically will be writing your code and where they will be. Get the answer before you sign.
iii"IP held in escrow"
Some vendors will offer to hold your source code "in escrow" until final payment, ostensibly to protect both parties. In practice this means you cannot see, audit, or hand over your own product mid-project. We have never seen this clause used in good faith. Refuse it. Code should be in your repository from commit one.
ivThe "we use the latest stack" pitch
If a vendor opens with how new their stack is, ask who at the company will be maintaining it in three years. Boring stacks are usually the right answer for an SME — Django, Rails, Spring, mainstream React, native iOS, native Android. The HK technical hiring market for "the latest stack" is thin enough that switching maintainers becomes a six-figure problem in year two.
vThe disappearing post-launch team
The team that ships is sometimes not the team that supports. Some vendors quietly transfer your account to a junior support pool after launch. Ask, in the contract, who the named on-call engineers are for the first six months and what their hourly rate is after that. If you cannot get names, you cannot get support.
None of these warnings are about offshore work being bad — we have shipped excellent work with partners in multiple countries. They are about transparency, naming, and a refusal to let small ambiguities compound into big ones over a year.