Building against systems you don’t control
A lot of my work sits on integrations where the data contract belongs to somebody else. The schema is theirs, the failure modes are undocumented, and you find out about a breaking change when it breaks. So I design as though that's guaranteed rather than possible: treat everything crossing the boundary as untrusted input, validate it at the edge where you can still say something useful about what arrived, and never let a partner's bad day turn into silent data loss on ours. The habit that pays for itself most often is making failure loud. An integration that degrades quietly will be discovered by a customer; one that fails visibly gets fixed the same morning.