Experienced Flutter App Developer

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

TYPE OF WORK

Part Time

WAGE / SALARY

$10

HOURS PER WEEK

20

DATE UPDATED

May 4, 2026

JOB OVERVIEW

Experienced Flutter Developer (Project Takeover & Cleanup)
Top 3 Skills Required:

Flutter Code Refactoring: Experience taking over and "tightening" existing codebases (specifically those built with AI/vibe coding tools).

Advanced 3rd-Party Integrations: Expert at implementing Vimeo, YouTube, Firebase Analytics, and WordPress REST APIs.

Clean Architecture & State Management: Moving logic out of the UI and into scalable, maintainable services (Singleton/Service patterns).

Role Overview:
I am the Product Strategist for an education organisation. We are a small, agile core team driving a well-established, 15+ year-old non-profit. I have been vibe coding our Flutter app using Cursor and Antigravity, but I am now stepping back as it took me way way too long and i'm falling behind in other areas of my job. I need a professional developer to take over the project, clean up the logic, and implement critical integrations, also to handle uploading to the stores, making up nicer previews etc.

You will work closely with our WordPress/Web Developer and Designer to ensure the app and website are perfectly synced.

Core Responsibilities:

Project Takeover: Audit, clean up, and refactor the existing Flutter code for stability and performance.

Integrations: Implement and optimize Vimeo and YouTube players, Firebase Analytics, and secure API connections to our WordPress/Kajabi backend.

Collaboration: Coordinate daily with our Web Designer to align endpoints and data structures.

Gamification (Advantage): Help us implement engagement features and gamified learning paths for our users.

Requirements:

Proven experience with flutter content apps, video, audio lessons - hundreds of episodes within series/categories etc - the app is working but new version has a few bugs and integrations that it needs before we can upload to stores.

Strong background in media-focussed apps (vimeo api, youtibe api, audio on backend currenrly, audio/video persistence etc).

Gamification or game development experience is a major plus.

Proactive communicator who isn't afraid to ask questions to get things right the first time.

Required Application Questions:

Start your reply with "Audio". Explain in 3 simple steps how you ensure background audio persists cleanly when a user navigates between different screens.

Project Takeover: Have you ever taken over a project built by a non-coder or an AI-assisted "vibe coder"? What was your process for cleaning up the code?

Gamification: Do you have experience building gamified features or working with game logic? Please provide a brief example.

Role Comprehension: In your own words, what is the primary goal of this position?

Proof of Execution: Provide 2-3 links or screenshots of media-heavy apps you have built or managed.

Reliability: What city/region are you in? Name your specific backup hardware for power outages and your secondary ISP.

Working Hours: Can you align 2-4 hours of your workday with South African Standard Time (SAST) for our daily syncs?

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0007
Controller Execution Time ( Jobseekers / Job )  0.0489
Total Execution Time  0.0503
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,512,960 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Experienced-Flutter-App-Developer-1634390
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0435 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0003   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1634390
 LIMIT 1 
0.0003   SELECT *
FROM `employers`
WHERE `employer_id` = 922873
 LIMIT 1 
0.0370   SELECT COUNT(DISTINCT t.id) as cnt
FROM 
`t_thread` `t`
INNER JOIN `t_message` `mON `t`.`id` = `m`.`thread_id`
INNER JOIN `t_message_employer` `eON `m`.`id` = `e`.`message_id`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1634390
AND `misc`.`idIS NULL 
0.0006   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-06-21',ej.date_added) duration_daysDATEDIFF('2026-06-21',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-06-21',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1634390' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1634390 
0.0007   UPDATE employer_jobs SET hit_counts '***Apr-28-2026=2***Apr-29-2026=1***Apr-30-2026=1***May-01-2026=193***May-02-2026=4***May-03-2026=5***May-04-2026=617***May-05-2026=89***May-06-2026=54***May-07-2026=50***May-08-2026=38***May-09-2026=18***May-10-2026=13***May-11-2026=29***May-12-2026=31***May-13-2026=20***May-14-2026=6***May-15-2026=14***May-16-2026=25***May-17-2026=18***May-18-2026=15***May-19-2026=20***May-20-2026=9***May-21-2026=12***May-22-2026=8***May-23-2026=7***May-24-2026=11***May-25-2026=11***May-26-2026=9***May-27-2026=20***May-28-2026=10***May-29-2026=8***May-30-2026=5***May-31-2026=2***Jun-01-2026=14***Jun-02-2026=14***Jun-03-2026=10***Jun-04-2026=8***Jun-05-2026=4***Jun-06-2026=3***Jun-07-2026=4***Jun-08-2026=6***Jun-09-2026=4***Jun-10-2026=6***Jun-11-2026=5***Jun-12-2026=10***Jun-13-2026=4***Jun-14-2026=5***Jun-15-2026=5***Jun-16-2026=6***Jun-17-2026=5***Jun-18-2026=3***Jun-19-2026=3***Jun-20-2026=1***Jun-21-2026=1' WHERE job_id'1634390'  
0.0006   UPDATE employer_jobs SET monthly_hits '***Apr-2026=4***May-2026=1370***Jun-2026=121' WHERE job_id'1634390'  
0.0013   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1634390' 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` = 1634390 
0.0012   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '922873'
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)