App Developer (Contract | Ad Hoc / Project-Based)

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

TYPE OF WORK

Gig

WAGE / SALARY

Determined Per Project

HOURS PER WEEK

TBD

DATE UPDATED

May 9, 2026

JOB OVERVIEW

About Funnel Digital Marketing
Funnel Digital Marketing is a performance marketing agency that brings Fortune 500-level expertise to small and medium-sized businesses. We specialize in paid search, SEO, programmatic advertising, and social media, and we are known for being data-driven, transparent, and genuinely invested in our clients' success. While large agencies reserve their best talent for their biggest accounts, we give every client access to senior-level strategy and execution from day one.
The agency was founded in 2018 and is led by Kenneth Hamner, who has 20 years of experience in digital marketing. Today, Funnel works with clients across a range of industries, delivering measurable results through strategies that are grounded in data and built around each client's specific goals. The agency is growing, and this role is a key part of scaling our lead generation efforts.

The Opportunity
We are looking for an App Developer who can help with ad hoc development tasks across iOS, Android, and Apple TV platforms.
This is not a full-time or recurring role. Work will come on a project-by-project basis as needs arise. Some weeks you may have a few tasks, other weeks none. When tasks do come up, we need someone reliable who can jump in, understand what is needed, and deliver clean work without hand-holding.
If you are someone who enjoys variety, can context-switch between platforms, and does solid work without needing to be micromanaged, this could be a great fit.

What You Will Do
App Development (iOS, Android, Apple TV)
Build, update, or troubleshoot apps across iOS, Android, and Apple TV
Implement new features, fix bugs, and make UI/UX improvements
Work with APIs and integrate third-party services as needed
Ensure apps function properly across different devices and screen sizes
Code Quality and Delivery
Write clean, maintainable code that follows platform best practices
Test thoroughly before delivering work
Document your work so others can pick it up if needed
Communication and Collaboration
Respond to task requests in a timely manner
Ask clarifying questions upfront rather than making assumptions
Provide realistic time estimates and communicate if anything changes
Share progress updates without being asked

What We Are Looking For
Required
Proven experience developing apps for iOS and/or Android
Comfortable working with Swift, Kotlin, Java, or cross-platform frameworks (Flutter, React Native, etc.)
Experience publishing apps to the App Store and/or Google Play
Able to work independently and manage your own time
Reliable communication, even when work is sporadic
Preferred
Experience with Apple TV (tvOS) development
Experience with app analytics and performance monitoring tools
Familiarity with CI/CD pipelines for mobile apps
Experience working with remote teams or agencies

What Success Looks Like
Success in this role comes down to reliability, quality, and communication.
When a task comes in, you respond promptly and deliver work that is solid and well-tested. You do not need constant check-ins or detailed instructions for every small decision. You ask the right questions early, hit your deadlines, and your code does not create new problems down the line.
Over time, as trust builds, you may be given larger or more complex projects.

Compensation and Setup
This is a contract-based, ad hoc role. You are paid per task or per project, not on a monthly retainer.
Compensation: Based on scope and complexity of each task. Rates will be discussed and agreed upon before any work begins.
Work Style: Fully remote, async
Tools: Slack, Google Docs/Drive

How to Apply
When applying through OnlineJobs.ph, please assign at least 10 points to your application. Applications with fewer than 10 points will not be reviewed.
Include:
A short summary of your experience with app development
Links to apps you have built or contributed to (App Store, Google Play, or portfolio)
Which platforms you are most experienced with (iOS, Android, Apple TV, cross-platform)
Your general availability and preferred rate structure

Final Step (Required)
Answer this question in your application:
If we handed you a task tomorrow to fix a performance issue in an existing iOS app and add a small new feature to an Android app, walk us through how you would approach both tasks from start to finish.

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0007
Controller Execution Time ( Jobseekers / Job )  0.0417
Total Execution Time  0.0430
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,512,744 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/App-Developer-Contract-Ad-Hoc-Project-Based-1642932
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0338 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0003   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1642932
 LIMIT 1 
0.0003   SELECT *
FROM `employers`
WHERE `employer_id` = 909995
 LIMIT 1 
0.0249   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` = 1642932
AND `misc`.`idIS NULL 
0.0004   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-06-20',ej.date_added) duration_daysDATEDIFF('2026-06-20',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-20',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1642932' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1642932 
0.0008   UPDATE employer_jobs SET hit_counts '***May-09-2026=184***May-10-2026=92***May-11-2026=53***May-12-2026=25***May-13-2026=41***May-14-2026=10***May-15-2026=8***May-16-2026=19***May-17-2026=6***May-18-2026=15***May-19-2026=9***May-20-2026=11***May-21-2026=8***May-22-2026=7***May-23-2026=10***May-24-2026=8***May-25-2026=6***May-26-2026=11***May-27-2026=17***May-28-2026=6***May-30-2026=7***May-31-2026=1***Jun-01-2026=9***Jun-02-2026=9***Jun-03-2026=2***Jun-04-2026=4***Jun-05-2026=5***Jun-06-2026=4***Jun-07-2026=4***Jun-08-2026=8***Jun-09-2026=3***Jun-10-2026=2***Jun-11-2026=7***Jun-13-2026=1***Jun-20-2026=1' WHERE job_id'1642932'  
0.0006   UPDATE employer_jobs SET monthly_hits '***May-2026=554***Jun-2026=59' WHERE job_id'1642932'  
0.0014   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1642932' 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` = 1642932 
0.0036   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '909995'
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)