TL;DR
Sync must be idempotent. Re-running a gateway sync should converge, not explode on the second pass — adopt what already exists instead of erroring on a UNIQUE conflict.
Paginate for real. A list API that caps at 100 will lie to you the moment you have 101 records. Fetch every page before you diff.
Outgoing mail can be observable without a third-party service — Laravel's mail events give you delivered/opened/clicked hooks.
Elsewhere: ITIL ticket types + major-incident handling on a support desk, a Flutter mobile client wired to a REST v1 API, and a breadcrumb bug that was really an ownership bug.






