View job listing
This is a product role at a payments company, which means the details matter in ways they don't elsewhere: the amount on the screen has to be the amount that moves, the form that fails has to fail clearly, and the schema at the boundary has to be strict. You'll work across three codebases and learn all of them.
Apply to Full Stack SW Engineer
About the Role
We're looking for a Full Stack Engineer to build the product Canadians actually touch: our web app (Next.js), our mobile app (Expo / React Native), and the TypeScript backend-for-frontend that serves both. You'll ship features end to end - from the API contract to the screen.This is a product role at a payments company, which means the details matter in ways they don't elsewhere: the amount on the screen has to be the amount that moves, the form that fails has to fail clearly, and the schema at the boundary has to be strict. You'll work across three codebases and learn all of them.
What You'll Be Doing
- Ship features end to end across web (Next.js, React, Tailwind), mobile (Expo, React Native), and our backend-for-frontend (Hono, Zod, Firestore)
- Build the onboarding and activation flows that turn signups into paying users - the biggest lever in the company
- Design and evolve BFF endpoints with strict schemas so web and mobile share one reliable contract
- Build UI on our design system and contribute back to it
- Instrument what you ship - Datadog RUM, structured logs, and alerts are part of done
- Write end-to-end tests (Playwright, Maestro) for the flows that matter
- Review code and help keep our engineering standards real
Who We're Looking For
- 2+ years building production web or mobile apps in TypeScript and React
- You've written real backend code too - REST APIs, auth, a data layer - not just called them
- You care about correctness: types, schemas, and edge cases, especially where money is displayed
- You have taste - you notice when a screen is off by four pixels and when a flow has one step too many
- You already build with AI coding tools every day and can tell when they're wrong
- You'd rather make a call with most of the information than wait for all of it, and when a requirement changes mid-build you get curious about why
- You want to own a surface, not just a component
Bonus Points
- React Native / Expo in production
- Fintech or another domain where a wrong number is a real problem
- Design-system work, accessibility, or i18n (we ship in English and French)