React Native iOS Developer — SaaS App (GPS, Offline, REST API)
SubSource
About the role
About SubSource
SubSource is a franchise management SaaS platform used by Subway, Burger King, Tim Hortons, and Pizza Hut franchisees across North America. The platform handles employee scheduling, GPS clock-in/out, labour tracking, onboarding, payroll reporting, and more. Our backend runs on ASP.NET Core + Azure SQL MI; our admin dashboard is Angular; our employee-facing app is React Native (iOS primary, Android secondary).
We are a small, fast-moving team. You will work directly with the owner and have real ownership over the mobile codebase.
The Role
We need an experienced React Native developer with strong iOS fundamentals to fix existing GPS module bugs, build new features, and improve reliability for our frontline employee app. This is ongoing contract work — not a one-off project. If you perform well, this grows into a long-term engagement.
What You'll Be Working On (Immediate)
• Fix GPS clock-in not capturing location on employee clock-in/out
• Add GPS timeout and graceful fallback when signal is unavailable (restaurant kitchens, freezers, basements)
• Build an offline queue using AsyncStorage so clock-ins are never lost when employees have no signal
• Fix UI freeze during clock-in caused by blocking API calls
• Ensure LocationTypeId and LocationAddressCoordinates are correctly populated in the GPS payload before API submission
• Connect to our existing ASP.NET REST API (/api/GPS/SaveOrUpdateGPSUser) with Bearer token auth
Required Skills
• React Native 0.70+ — not just Expo, real bare workflow
• iOS development — you understand Xcode, Provisioning Profiles, CocoaPods, Info.plist
• react-native-geolocation-service — background location, permissions, timeout handling
• @react-native-community/netinfo — online/offline detection
• AsyncStorage — offline queue patterns, no race conditions
• REST API integration — Axios or fetch with auth headers, error handling, retry logic
• TypeScript — all new code must be typed
• Git — Azure DevOps (we use this, not GitHub)
Nice to Have
• Experience with employee time & attendance or workforce management apps
• React Navigation v6
• Push notifications (FCM)
• Expo for OTA updates (we are evaluating this)
• Experience with franchise or hospitality industry apps
You Are a Good Fit If You...
• Have shipped at least 1 React Native iOS app to the App Store
• Can debug a crash on a physical iPhone using Xcode device logs (not just the simulator)
• Understand the difference between isConnected and isInternetReachable in NetInfo and why it matters
• Have built an offline-first feature before — you know AsyncStorage is async and have burned yourself on missing await before
• Are comfortable working with an existing codebase you didn't write
• Can communicate clearly in English via written messages (we are async-first)
• Are available for a minimum of 10 hours/week, ideally 20+
You Are NOT a Good Fit If You...
• Only have Expo managed workflow experience and have never touched native code
• Need to be hand-held through iOS signing and provisioning
• Cannot explain what useEffect's dependency array does
• Have never handled API errors beyond a happy path
• Are looking for a short one-time task — we need someone for ongoing work
Tech Stack
LayerTechnologyMobile AppReact Native (bare), TypeScriptBackend APIASP.NET Core, Azure SQL MIAdmin DashboardAngular 6+HostingAzure App ServiceReposAzure DevOps GitBuildXcode (MacBook required for iOS builds)
Engagement Details
• Type: Hourly, ongoing contract
• Hours: 40 hrs/week to start, can grow
• Timezone: Flexible — we need overlap with North American business hours (EST/PST) daily.
• MacBook required for iOS builds — please confirm you have one
How to Apply:
Apply via indeed and copy/paste link in the browser to complete qualifying questions. Applicants that qualify will be interviewed.
https://forms.gle/XvQu7L7dSgA89pqz9
• Link to a React Native app you've shipped to the iOS App Store (or TestFlight)
• A short description of how you would implement an offline GPS clock-in queue in React Native
• Your answer to this question: "In React Native, what prop do you add to getCurrentPosition() to prevent the app from freezing for 30 seconds when there is no GPS signal?"
Proposals without answers to items 2 and 3 will not be reviewed.
Why Work With Us
• Direct access to the owner — no layers of project managers
• Small, focused codebase — not a 500-developer enterprise mess
• Real-world product used by thousands of franchise employees daily
• Opportunity to grow into a lead mobile role as we build SubSource 2.0 in React Native
• We pay on time
Pay: ₹800,000.00 - ₹1,615,470.00 per year
Benefits:
• Work from home
Education:
• Master's (Required)
Work Location: Remote
Don't send a generic resume
Paste this job description into Mimi and get a resume tailored to exactly what the hiring team is looking for.
Get started free