React Native / Expo Developer

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

TYPE OF WORK

Full Time

SALARY

500

HOURS PER WEEK

40

DATE UPDATED

May 12, 2025

JOB OVERVIEW

Company Introduction:

Motorcycle Riders Hub is the premier e-learning destination for motorcycle enthusiasts, combining expert-led video courses, interactive theory quizzes, and instructor-scored practical sessions. We’re on a mission to make rider training seamless and engaging, we need a skilled React Native/Expo developer to help us elevate our mobile experience.

Job Description:

As our lead mobile developer, you’ll fully own feature enhancements, bug fixes, and performance optimisations within an Expo + TypeScript codebase. You’ll report directly to the project lead, working closely with UX/UI designers to deliver pixel-perfect screens, integrate backend APIs, and ensure smooth over-the-air updates. This is a 12-month engagement with potential for full-time conversion based on your impact.

Key Responsibilities:

- Feature Development & Maintenance: Refactor, extend, and harden existing student–instructor flows (forms, scoring, resource recommendations).
- API Integration: Consume AWS API Gateway endpoints secured via Cognito authentication.
- Media & Quiz Modules: Optimise our video player and third-party quiz components, with an eye toward bundling them natively in-app.
- Collaboration: Partner with UX/UI to translate Figma designs into production-ready screens, ensuring fidelity and responsiveness.
- Release Management: Coordinate Expo Updates (OTA), manage app store submissions, and resolve platform-specific issues.
- Testing & Quality: Write and maintain unit and integration tests to uphold code quality and prevent regressions.

Skills and Qualifications:

- Experience: 3+ years shipping production React Native applications, including x1 year with Expo.
- TypeScript Proficiency: Deep understanding of typing patterns, Redux or Context APIs, and React Hooks.
- Auth & APIs: Familiarity with AWS Cognito auth flows (sign-in, token management) and consuming RESTful endpoints.
- Performance Tuning: Comfortable with profiling tools (Flipper, React DevTools) and strategies for memory, CPU, and bundle-size optimisation.
- Tooling & Workflow: Proficient in Git/GitHub workflows, CI/CD pipelines, and code review processes.
- Communication: Strong written and verbal skills for async collaboration across time zones; you will report directly to the project lead.

Work Arrangement:

- Remote: Fully distributed team.
- Duration: 12-month engagement with optional full-time conversion.
- Hours: Flexible. No strict overlap required, though UK-friendly overlap is appreciated.

Compensation:
- Budget: Up to USD 500/month (hourly or milestone basis).
- Timing: Development phase begins after UX/UI design sprints conclude.
- Negotiable: Within project scope and experience.

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0011
Controller Execution Time ( Jobseekers / Job )  0.0142
Total Execution Time  0.0161
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,508,648 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/React-Native-Expo-Developer-1375138
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0078 seconds)  (Hide)
0.0004   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0005   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1375138
 LIMIT 1 
0.0003   SELECT *
FROM `employers`
WHERE `employer_id` = 761358
 LIMIT 1 
0.0009   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1375138
AND `misc`.`idIS NULL 
0.0004   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-04-19',ej.date_added) duration_daysDATEDIFF('2026-04-19',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-04-19',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1375138' 
0.0004   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1375138 
0.0018   UPDATE employer_jobs SET hit_counts '***May-12-2025=30***May-13-2025=42***May-14-2025=25***May-15-2025=7***May-16-2025=3***May-17-2025=2***May-18-2025=1***May-19-2025=1***May-20-2025=5***May-21-2025=7***May-22-2025=2***May-23-2025=4***May-25-2025=3***May-26-2025=1***May-27-2025=1***May-28-2025=1***May-29-2025=3***May-30-2025=1***Jun-02-2025=2***Jun-03-2025=3***Jun-04-2025=4***Jun-05-2025=2***Jun-06-2025=1***Jun-07-2025=1***Jun-09-2025=2***Jun-10-2025=2***Jun-11-2025=3***Jun-12-2025=1***Jun-13-2025=1***Jun-15-2025=1***Jun-17-2025=2***Jun-18-2025=2***Jun-19-2025=4***Jun-20-2025=2***Jun-21-2025=2***Jun-22-2025=1***Jun-23-2025=2***Jun-26-2025=2***Jun-28-2025=2***Jun-30-2025=3***Jul-01-2025=1***Jul-02-2025=6***Jul-03-2025=3***Jul-04-2025=1***Jul-05-2025=1***Jul-06-2025=4***Jul-07-2025=3***Jul-08-2025=2***Jul-09-2025=2***Jul-10-2025=1***Jul-11-2025=4***Jul-12-2025=1***Jul-14-2025=1***Jul-15-2025=1***Jul-17-2025=3***Jul-20-2025=1***Jul-22-2025=1***Jul-24-2025=1***Jul-25-2025=5***Jul-27-2025=1***Jul-28-2025=1***Jul-29-2025=6***Jul-30-2025=1***Aug-01-2025=4***Aug-03-2025=4***Aug-04-2025=4***Aug-07-2025=4***Aug-10-2025=4***Aug-12-2025=3***Aug-15-2025=3***Aug-17-2025=1***Aug-18-2025=2***Aug-19-2025=4***Aug-23-2025=1***Aug-28-2025=1***Aug-31-2025=1***Sep-01-2025=1***Sep-03-2025=2***Sep-05-2025=2***Sep-11-2025=1***Sep-12-2025=1***Sep-14-2025=2***Sep-15-2025=3***Sep-22-2025=1***Sep-23-2025=1***Sep-24-2025=1***Sep-25-2025=1***Sep-28-2025=1***Oct-01-2025=1***Oct-02-2025=1***Oct-03-2025=2***Oct-06-2025=1***Oct-10-2025=2***Oct-13-2025=1***Oct-15-2025=1***Oct-24-2025=2***Oct-25-2025=1***Oct-26-2025=1***Oct-28-2025=2***Oct-29-2025=1***Nov-02-2025=1***Nov-04-2025=1***Nov-07-2025=4***Nov-08-2025=1***Nov-10-2025=1***Nov-11-2025=2***Nov-12-2025=1***Nov-13-2025=1***Nov-16-2025=1***Nov-21-2025=2***Nov-26-2025=1***Nov-27-2025=1***Nov-28-2025=1***Nov-30-2025=2***Dec-02-2025=1***Dec-05-2025=3***Dec-08-2025=1***Dec-09-2025=1***Dec-10-2025=2***Dec-11-2025=1***Dec-13-2025=2***Dec-14-2025=1***Dec-15-2025=1***Dec-19-2025=9***Dec-20-2025=2***Dec-25-2025=1***Jan-01-2026=1***Jan-05-2026=1***Jan-07-2026=1***Jan-09-2026=1***Jan-13-2026=1***Jan-14-2026=1***Jan-16-2026=3***Jan-20-2026=1***Jan-22-2026=2***Jan-29-2026=1***Jan-30-2026=1***Feb-14-2026=1***Feb-19-2026=2***Feb-22-2026=1***Mar-01-2026=1***Mar-10-2026=1***Mar-17-2026=1***Apr-13-2026=1***Apr-19-2026=1' WHERE job_id'1375138'  
0.0006   UPDATE employer_jobs SET monthly_hits '***May-2025=139***Jun-2025=45***Jul-2025=51***Aug-2025=36***Sep-2025=17***Oct-2025=16***Nov-2025=20***Dec-2025=25***Jan-2026=14***Feb-2026=4***Mar-2026=3***Apr-2026=2' WHERE job_id'1375138'  
0.0009   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1375138' AND status LIKE 'sent%' ORDER BY id DESC  
0.0002   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1375138 
0.0008   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '761358'
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)