React Native / Expo Developer to Take Over and Launch a Finished App

Please login or register as jobseeker to apply for this job.

TYPE OF WORK

Full Time

SALARY

$2,000 - $2,400 CAD per month

HOURS PER WEEK

40

DATE UPDATED

Sep 13, 2026

JOB OVERVIEW

Start: Wednesday, September 23, 2026 (or as close to it as you can)

Job overview

Rovexa is an AI fitness app for iOS and Android. The app is built and already on TestFlight. The developer who built it is moving on at the end of September, and I need someone to take it over, get it through App Store and Google Play review, and keep it healthy after launch.

This is not a build-from-scratch role.

The architecture is d ---------- , the codebase is documented (AGENTS.md, architecture and database docs, feature status, deferred items), and you get a full week of overlap with the outgoing developer. You will be reading someone else's code, following the conventions already in place, and shipping.

What is already working

- Auth with email plus Apple and Google sign-in, onboarding, user profiles
- Workout tracking with live sessions, a program library, and an exercise library
- Nutrition logging with photo-to-calorie
- Personal journal
- AI coach (four personas) with per-user usage metering. The coach backend is owned by a separate developer; you integrate with it, you do not build it
- HealthKit integration
- Separate dev, staging, and production environments on Supabase and EAS

What you would work on:
- Finishing and testing the RevenueCat subscription flow (sandbox purchases, restore, entitlements)
- Production builds and store submission on both platforms, then fixing whatever review comes back with. I handle screenshots, listing copy, and privacy labels; you handle the technical side
- Bugs from beta testers and the first weeks of real users
- Small features from user feedback
- Keeping the app current with Expo SDK and OS updates over time

How we work:
- Async by default. One written update in Slack at the end of each working day
- One 20-minute call per week
- 4 hours of overlap with Toronto time. The rest of your hours are yours to choose.
- Feature branches and pull requests into main, never direct pushes
- We pay on time and do not micromanage. I do read the code

You would be a strong fit if you:
- Have taken over another developer's React Native codebase before and can say what went right and what went wrong
- Have submitted at least one app to both the App Store and Google Play, and have handled a rejection
- Have shipped React Native / Expo apps in TypeScript. EAS Build and EAS Update experience is a plus
- Know Supabase properly: Postgres, Row Level Security, Storage, Edge Functions, migrations
- Have worked with RevenueCat or in-app subscriptions
- HealthKit or Health Connect experience is a plus
- Have wired up an LLM API (OpenAI, Claude, Gemini) is a plus

Train yourself (gym/sports). Optional, but it shows in the work

Why take this role:
A real app, real users within weeks, and a codebase that was built to be handed over. Work with a very experienced founder. when it comes to fitness and marketing.

To apply:

Skip the cover letter. Answer these four, briefly:

- Tell me about a codebase you inherited from another developer. What did you do in the first week, and what went wrong?
- Which apps have you submitted to the App Store and Google Play? Links if public. If you have had a rejection, what was it, and how did you fix it?
- A feature you shipped that used an external API (payments, AI, health data). What was the tricky part?
- Do you train? One line is fine.

Shortlisted candidates get a small paid trial task on the actual codebase.

I pay for your time on that regardless of the outcome. If it goes well, we talk properly about the role.

Thanks and good luck!

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0007
Controller Execution Time ( Jobseekers / Job )  0.0097
Total Execution Time  0.0109
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,503,328 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/React-Native-Expo-Developer-to-Take-Over-and-Launch-a-Finished-App-1729466
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0048 seconds)  (Hide)
0.0004   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0003   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1729466
 LIMIT 1 
0.0003   SELECT *
FROM `employers`
WHERE `employer_id` = 888441
 LIMIT 1 
0.0004   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1729466
AND `misc`.`idIS NULL 
0.0004   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-09-24',ej.date_added) duration_daysDATEDIFF('2026-09-24',e.rebill_date) duration_rebillej.*, e.deactivate FROM employers eemployer_jobs ej WHERE e.employer_id ej.employer_id AND
                                   ((
e.user_level >= '500' AND ej.date_added <= e.rebill_date)
                                   OR 
e.employer_id '' OR (ej.date_approved <> '2000-01-01' and DATEDIFF('2026-09-24',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1729466' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1729466 
0.0007   UPDATE employer_jobs SET hit_counts '***Sep-13-2026=336***Sep-14-2026=228***Sep-15-2026=56***Sep-16-2026=124***Sep-17-2026=96***Sep-18-2026=98***Sep-19-2026=25***Sep-20-2026=3***Sep-22-2026=4***Sep-24-2026=2' WHERE job_id'1729466'  
0.0007   UPDATE employer_jobs SET monthly_hits '***Sep-2026=972' WHERE job_id'1729466'  
0.0003   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1729466' AND status LIKE 'sent%' ORDER BY id DESC  
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1729466 
0.0003   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '888441'
AND `date_added` >= '2022-06-08' 
0.0003   select from teasers 
0.0002   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)