Own feature development: Take ownership of features end-to-end — from technical design through delivery — breaking complex UI and interaction flows into well-scoped, deliverable pieces.
Write high-quality code: Produce TypeScript and React Native code that is clean, performant, well-tested, and raises the bar for the codebase.
Contribute to architecture: Participate in team-level architectural decisions around component patterns, state management, navigation, and performance optimization.
Improve quality proactively: Identify opportunities to improve app performance, code quality, accessibility, and developer experience — and act on them.
Guide junior engineers: Provide technical guidance to Software Engineers I and II through thorough code reviews, pairing sessions, and design feedback.
Collaborate cross-functionally: Work with Product, Design, and QA to validate technical decisions and ensure alignment between product goals and implementation.
Participate in on-call rotation: Take increasing ownership of incident response, contributing to root cause analysis and systemic improvements.
Build team knowledge: Document technical decisions, component patterns, and architecture to strengthen your team’s shared understanding.
Requirements
3–5 years of professional software engineering experience, with meaningful time building React or React Native applications
History of delivering complex features within a software team to drive business outcomes
Experience breaking down ambiguous requirements into concrete technical plans
Exposure to large-scale, high-traffic applications — you understand the challenges of building mobile experiences that serve millions of concurrent users
Advanced proficiency in TypeScript — you write clean, type-safe, production-quality code
Strong React Native experience — deep understanding of component lifecycle, hooks, performance optimization, and native module integration
Familiarity with Expo and its ecosystem
Experience with state management solutions and complex navigation patterns
Solid testing practices — unit and component testing with Jest, familiarity with Maestro or similar E2E testing frameworks
Familiarity with CI/CD pipelines and Expo/EAS workflows — app store releases, OTA updates
Understanding of mobile-specific concerns — performance profiling, memory management, and platform differences
Autonomous — you can take an ambiguous problem and drive it to a well-defined solution
Comfortable providing and receiving direct technical feedback
Strong written communicator, especially important in a fully remote environment
Able to balance deep technical work with collaborative design and planning
Foster a strong team environment, we enjoy team happy hours and off-site gatherings to get to know one another