React Native Developer
Role details
Job location
Tech stack
Job description
As React Native Developer, you will build and maintain the mobile layer of a domain-driven Laravel and React platform. The mobile app is not a standalone product; it extends the same event-driven, AI-assisted architecture that powers our web experiences. Your role is to make that ecosystem work seamlessly on iOS and Android, using React Native with TypeScript. You'll work directly with backend and product engineers to design predictable APIs, shared types, and flows that stay consistent across all delivery layers. You'll care as much about state coherence and background behavior as you do about pixels. Responsibilities
- Develop and maintain React Native applications with TypeScript, aligned with backend domain logic.
- Integrate with Laravel-powered APIs, events, and AI endpoints through stable data contracts.
- Implement authentication, real-time updates, offline handling, and caching consistent with the web app.
- Collaborate with product and backend teams on schema evolution, API design, and feature rollouts.
- Ensure strong telemetry, error handling, and performance monitoring (Sentry, RudderStack).
- Own build, deployment, and OTA release processes for both iOS and Android.
- Translate complex flows, such as AI chat, feed updates, or user journeys. Into native-feeling, reliable experiences.
Requirements
- Proven experience shipping React Native apps at production scale.
- Deep understanding of TypeScript, React hooks, and state management.
- Experience integrating mobile apps with structured, event-driven APIs.
- Familiarity with async flows, background jobs, and push notifications.
- Understanding of OAuth and secure session management (Passport/Socialite context is a plus).
- Awareness of performance trade-offs between native and hybrid components.
- Ability to reason about system behavior and diagnose cross-platform issues.
Mindset You think in sync; one product across multiple surfaces. You value predictability, not just polish. You treat mobile as part of a living architecture, not an isolated app. You design flows that stay resilient under real usage, not just happy paths.