A complete application in a minute — tailored resume and cover letter, ready to send.
Wander in San Francisco seeks a Senior to Staff backend engineer to own the Sync layer that unifies external PMS APIs with Wander’s internal services. You will design adapters for vendor REST/HTTP APIs, enforce data coherence, and keep the database as the system of record.
You will prioritize reliability, freshness, and recoverability, resisting over-engineering. The role focuses on maintaining a simple, boring core that scales as more PMS vendors are added, with strong emphasis on correctness
Level: Senior to Staff (IC). 7+ years required, 10+ preferred, in backend systems that have to work. Team: Sync — the integration and reconciliation layer between external property-management systems and Wander’s internal services. Stack: TypeScript on Effect, PostgreSQL, REST/HTTP integrations against a long and growing list of third-party PMSes, with hotel systems coming next.
Sync is the layer that makes every external PMS look like one uniform PMS to the rest of Wander. Downstream services should never know or care whether the booking, rate, or availability behind a call came from one vendor’s API or another’s; Sync maintains that abstraction for the internal systems and makes it real by adapting the external ones.
The architecture is deliberately simple and you are expected to keep it that way. Connectors talk to each external system, adapters and transformers map vendor-specific shapes onto a canonical internal set of functions and structs, and Sync applies those canonical facts into the internal owner systems with observable freshness, retries, and recovery. Sync pulls authoritative PMS facts through PMS-specific adapters, translates them into Wander canonical forms, and lands them in the systems that own that state.
What Sync is not , and what you will be expected to actively resist turning it into: a workflow engine, a queue system, or a clever orchestration layer. The database owns accepted work and recovery state. Token buckets, timers, workers, and queues are execution controls, not the system of record. If a design starts growing a bespoke orchestration brain, that is a smell, and part of this job is having the judgment and the spine to keep the thing boring.
At Senior, you own adapters and the canonical mappings end to end, build reliable integrations against difficult external systems with minimal hand‑holding, and make sound calls on freshness, retry, and recovery without needing them spelled out. At Staff, you additionally shape the canonical model and the integration patterns the rest of the team builds against, set the boundary that keeps Sync an integration-and-reconciliation layer rather than an orchestration engine, and raise the reliability bar across the team’s integrations. Either way you are measured on integrations that work, recover, and stay observable under real-world vendor behavior, and on keeping the system simple as the number of integrated PMSes and hotel systems grows.