I did this with my startup, fairly successfully. There is a lot of great talent in multiple countries and it was nice to help them with amazing wages (like 2x their local dev wages.)
Couple of thoughts
- Modularize the codebase. DB layer. API layer. UI layer. Models. Different groups dont have access to each other's code, only to running APIs and docs
- Build the models yourself, dont outsource that. Whether its a neural network, algo, whatever. Make it yourself and expose it with an API.
- Give the backend API layer to one group and UI layer to another group.
- Everything MUST be in source control. No binaries. You have to build from scratch.
- ** You do all pull requests and merge code. You do the tagging and builds. You have to fully understand it. None of this works if you dont fully understand the pieces.
- Have good test harnesses and dummy data to work with that is representative of real data.
- Dont give PROD DB access to offshore teams, manage that yourself.
- Work with many people on small assignments. If they do well, expand the assignments. Eventually you'll have 5-7 people you trust for larger assignments.
- Write good automated tests against the API layer
You have to be hands on, or this all grinds to a halt since you get a circular blame game of the the blocking item is.