Runway

Intelligent tools for scaling content and teams.

Role
Hands-on Senior Engineering Manager

Tech
TypeScript, React Native (Expo), React, Node.js, PostgreSQL, ClickHouse, dbt, AWS, and services like Mixpanel, LaunchDarkly, Braze, AppsFlyer, Stripe, Sentry

Timeline
2025 — Present

Tags
APP, IOS, ANDROID, WEB, BACKEND

Leading the Product Engineering team

  • Helped grow the team from 7 engineers to more than 20, being involved in hiring every step of the way: reviewing candidate profiles, doing interviews, and making sure every new hire would raise the bar for the team.

  • Made sure engineers focus on high impact work, the things that move our metrics and matter most to our users, and not just the next thing in the backlog.

  • Run regular retros with the team to look back on what went well and what didn't, then turn that into real changes to how we work. It's been a big part of improving the overall health of the team, so people can do their best work without burning out.

  • Built our own Staffing tool to run the team. It shows every workstream, the people on it, who the owner (DRI) is for each product area, and what's active, on hold or shipped. It also tracks on-call and time off, and warns me when someone is out during a launch.

  • Kept everyone in the loop without extra meetings: the tool pulls in GitHub PRs and Slack, and sends a summary of every workstream to Slack, so anyone can see where things stand in one place.

  • Stayed close to the code by reviewing PRs across the web app, the API and mobile. That keeps the quality bar consistent and helps the team grow through feedback.

  • Created a clear experiment process for the team: every feature ships behind a feature flag with its analytics set up from day one, so we decide what to keep based on data and not opinions.

  • Made the numbers easy for everyone to follow, with a weekly metrics report and dashboards the team and leadership use to see how each release and experiment is doing.

  • Worked closely with product, design and creative (engineers, designers and technical artists on the same workstreams), so we could ship fast without stepping on each other.

  • Still very hands-on: I lead by building alongside the team, especially on new launches and experiments.

Hands-on across the whole product, from the app to the data

  • Built Chat Mode for the Runway iOS app (React Native / Expo) from the ground up. It's a conversational interface where an LLM (Claude) turns a plain-language request into image and video generations. It covers tool calling, failed-task recovery, rate limiting and in-context upgrades, and later gained Act-Two, Seedance and multi-shot video.

  • Iterated on Runway's AI creative Agent skills, identifying conversion opportunities, home templates and push notifications that open a pre-filled request.

  • Launched Runway on Android with Google Play Billing end to end. That meant the in-app purchase flow, server-side purchase verification, license-tester support, matching Play subscriptions to users in analytics, and linking admin records to their Play Console orders.

  • Built Ad Maker tool in the mobile app, which turns a product photo into a storyboarded video ad with Seedance 2.0. I wrote both the backend workflow and the step-by-step mobile flow, including regenerating individual shots and detecting when a user asks Chat for a product ad.

  • Built the web Apps experience, a catalog of single-purpose creative tools (Relight Scene, Change Weather, Color Grade, Art Style, Product Shot, and more) with presets, standard empty states and deep linking. I also integrated frontier models such as Gemini 3 Pro, Nano Banana and Veo 3.1, and shipped the web launch of Gen-4.5.

  • Owned monetization on mobile and web: upsell dialogs, plan selectors, credit packs, plan defaults based on the user's location, and a cancellation flow with retention offers and an exit survey. For Apple subscribers I added resubscribe offers and plan step-downs. On the billing backend I fixed edge cases in credit rollover and in period-end calculations.

  • Drove acquisition and retention work: a gate that moves mobile-web users to the native app with install attribution (AppsFlyer OneLink, universal links), timing of the push notification prompt, and Braze messaging and backfills.

  • Ran the A/B testing practice for mobile with LaunchDarkly feature flags. I also built XPL, an internal tool that turns a product idea into an approved experiment plan, creates its feature flag, and opens the implementation and analytics pull requests.

  • Built the analytics foundation for mobile: dbt models on ClickHouse, a Cube semantic layer, and the main mobile dashboard. The dashboard covers registrations, D1 conversion, activation, retention, cancellations and ARR across iOS and Android, alongside Mixpanel session replay and server-side event tracking.

  • Built internal AI agents on Runway's internal app platform. Replay Agent watches recorded user sessions, works out where users struggled, and posts its findings to Slack. Launch Agent writes a launch plan, then produces the brief, launch video and social posts. A Mobile Experiments dashboard reports each experiment's results, and an agent on it runs new analyses on request.

  • Wrote backend features in Node.js / TypeScript for billing, credits, affiliates, authentication and analytics, along with the in-app Admin Tools the team uses to debug user accounts.

  • Contributed to the marketing site (Next.js), including an app-install banner that keeps its attribution through the install and new options for the page builder.

Runway’s Stack

Runway's stack is TypeScript almost everywhere: React on the web, React Native on mobile, and Node.js on the backend. The data side runs on ClickHouse with dbt, and everything is hosted on AWS. I checked the package files in each repo; the exact versions are there if you need them.

Mobile app (where most of your work is)

  • React Native with Expo, written in TypeScript

  • TanStack React Query for server data, Zod for validation, Reanimated and FlashList for animations and fast lists

  • Mixpanel (analytics and session replays), LaunchDarkly (feature flags), Braze (push notifications), AppsFlyer (install attribution), Sentry (crash reporting)

  • Apple and Google Play in-app subscriptions

  • Jest for tests

Web app

  • React 18 with TypeScript, built with RSBuild

  • TanStack React Query, Zustand and XState for state, React Router, React Aria components, CSS Modules

  • Lexical for the prompt editor

  • Jest, Playwright and Biome

Backend API

  • Node.js with TypeScript, on Express, with tRPC in places

  • PostgreSQL through TypeORM, plus Redis

  • Stripe for web billing, AWS S3 for storage

  • Anthropic (Claude) and OpenAI SDKs for the LLM features

  • Vitest for tests

Data and analytics

  • ClickHouse as the data warehouse

  • dbt for the models, Cube for the metrics layer and dashboards, Dagster for the scheduled jobs

Infrastructure and internal tools

  • AWS (plus some GCP), managed with OpenTofu, which is the open-source version of Terraform

  • Bay, our internal app platform on Kubernetes. Your internal tools (XPL, the agents, the experiments dashboard) are built on it with Koa, tRPC, React and Ant Design.

Marketing site

  • Next.js with Tailwind, content in Sanity, hosted on Vercel

To view Runway on the App Store, please click here.

Next
Next

Ledger Manager