Back to careers

Mobile Engineer

About this role

Outbound helps travelers move from a loose idea to a useful trip plan: where they might stay, what they can do each day, what still needs attention, and what changes when plans shift. The mobile app is where all of that has to feel simple, fast, and trustworthy.

This role owns the app experience that travelers actually touch. You will build product flows for creating trips, reviewing generated itineraries, opening activity details, managing account/subscription moments, and recovering gracefully when data is partial, stale, or still being generated.

The work is deeper than shipping screens. Outbound depends on backend-generated travel plans, typed app state, and careful UI projection. A strong mobile engineer here can make complex planning systems feel calm without hiding important information or exposing internal machinery.

Key deliverables & responsibilities

1. Trip planning and itinerary surfaces

  • Build the mobile flows travelers use to start a trip, answer planning questions, review generated itineraries, and return to a plan later.
  • Make trip details and activity screens useful on the ground: clear timing, location, price, practical tips, completion state, and what to do next.
  • Create empty, loading, partial, failed, refreshed, and recovered states that explain what is happening without turning the app into a technical console.

2. Mobile state, data contracts, and reliability

  • Work with backend contracts so generated plans, trip status, prices, locations, route metadata, practical tips, and activity details stay intact in the app.
  • Trace data through API models, domain entities, state notifiers, widgets, refresh paths, and local persistence when something does not match what the backend sent.
  • Harden reconnect, retry, refresh, offline, and mutation behavior so travelers do not see stale plans, duplicated actions, missing activities, or misleading defaults.

3. Craft, performance, and verification

  • Partner with product and design on interaction details: hierarchy, spacing, transitions, forms, paywalls, account states, and app-store-quality finish.
  • Keep the app responsive across realistic travel use: slow networks, app backgrounding, resumed sessions, older trips, and imperfect generated data.
  • Write focused tests and use simulator evidence for important flows before calling a change done.

What success looks like

  • A first-time traveler can create a trip, review the plan, understand what is ready, and take the next useful action without needing product context from the team.
  • A returning traveler can reopen an itinerary days later and still see the right activities, timing, locations, notes, prices, completion state, and practical details.
  • When generation, network, or backend data is incomplete, the app explains the state clearly and recovers without losing trust.
  • Core flows feel polished enough for real users: stable navigation, responsive screens, readable empty states, sensible loading behavior, and no obvious seams between generated data and hand-built UI.
  • The engineering team can change backend contracts or trip-generation behavior with confidence because the mobile projection is typed, tested, and easy to reason about.

What we are looking for

  • 3+ years building production mobile apps, ideally with Flutter or another declarative mobile framework.
  • You have shipped user-facing flows with real state: authentication, forms, subscriptions, offline or retry behavior, notifications, deep links, generated content, or similar complexity.
  • You can move between UI, navigation, state management, networking, local persistence, and tests without treating any layer as someone else's problem.
  • You care about source-of-truth boundaries and can spot when local state, cached data, or optimistic UI is about to mislead the user.
  • You debug patiently, read unfamiliar code paths, and can explain what is proven, what is inferred, and what still needs evidence.
  • You have product taste: you notice awkward loading states, confusing copy, janky transitions, crowded screens, and small details that make an app feel unfinished.
  • You communicate tradeoffs clearly with product, design, and backend collaborators and can keep scope tight without shrinking the quality bar.

Bonus if you

  • Flutter, Riverpod, generated models, contract tests, app performance, or release pipeline experience.
  • Experience with AI-generated product surfaces, travel/planning products, maps, subscriptions, analytics, or consumer mobile apps.
  • You have worked in an early-stage team where engineering judgment, product clarity, and speed all mattered at the same time.

Apply for this role

Send a short note and include work that shows how you think: a portfolio, shipped product, teardown, writing sample, GitHub, resume, or anything concrete.