The gotchas are structural, not personal. A fixed price quoted against a written spec turns adversarial the moment reality departs from the document. The milestone and deploy clauses to write instead, what Upwork escrow really covers, who owns the code, and the handover checklist to run before final payment.