Senior Software Engineer (Full Stack) — Personalization & Customer
This role is expected to contribute as a senior product engineer within a shared ownership model. The engineer will work across client applications, back-end services, platform capabilities, and legacy systems while partnering closely with Product, Analytics, QA, Architecture, and Platform teams.
Technology Stack
Client Application
React for component-based application development.
Next.js for web application routing, rendering, and server/client integration.
Branch for deep linking, attribution, and connected guest journeys across app and web.
Contentful for structured content management and dynamic guest-facing content.
LaunchDarkly for feature flags, controlled rollouts, and experimentation.
FullStory for session replay and behavioral insight into the guest experience.
Datadog for client-side monitoring, logging, tracing, dashboards, and alerting.
Mobile App
React Native for cross-platform mobile application development.
Expo for mobile app tooling, builds, updates, and development workflows.
Back End
Go distributed mono-repo for shared back-end service development.
Event-driven architecture for asynchronous workflows and business event processing.
Domain-driven design to model clear business domains and service boundaries.
Back End for Front End, or BFF, patterns to support app- and web-specific API needs.
Temporal orchestration for durable workflows, retries, and long-running business processes.
Grafana for operational dashboards and platform visibility.
Datadog for logs, metrics, traces, alerts, and production service health.
OpenAI API documentation where AI-enabled product capabilities or integrations are relevant.
Shared Repo Ownership Model
The Senior Software Engineer will work in shared repositories where multiple engineers and teams contribute to common services, packages, and platform capabilities. This requires strong code ownership, disciplined collaboration, and clear communication across domain boundaries.
The engineer should be comfortable making changes in shared codebases, reviewing and maintaining shared packages, coordinating with other teams when changes affect common contracts, and contributing improvements back to platform foundations. API design, data models, observability, feature flags, and release safety are expected to be part of normal delivery, not follow-up work.
Legacy Systems and Migration
The team also maintains legacy microservices currently written in TypeScript as AWS Lambda function apps. These services are being migrated to the new Go-based back-end platform. The Senior Software Engineer will help maintain production stability in the legacy environment while supporting migration, refactoring, and retirement of older services as platform capabilities mature.