Mobile Developer (iOS & Android), Long-Term Partnership Opportunity

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

TYPE OF WORK

Full Time

SALARY

6-8 Euros per hour

HOURS PER WEEK

40

DATE UPDATED

Oct 2, 2026

JOB OVERVIEW

About MSTR

MSTR ( ---------- ) is an AI software company based in the Netherlands and an Anthropic partner. We build custom AI software for Dutch businesses, run programs that bring AI into daily use, and ship our own products.

We are 20+ people, with a customer-facing team in the Netherlands and a remote development team in the Philippines. We build and run native mobile apps that record audio, keep data safe on the device, upload in the background and talk to our own APIs. We are hiring a mobile developer to own them.

This is a long-term career opportunity

We are looking for someone who wants to build a long-term career with us, not find their next gig. We invest in our people's growth and increase responsibility as you develop.

Location and type

- Remote
- Full-time, 40 hours per week, 14:00 to 23:00 Philippine time (overlapping with Netherlands business hours)
- Long-term contractor position

What you will do

You own both native apps end to end, from a ticket to a release in the stores. The same codebase ships as several branded products on both platforms, so one change usually lands in more than one repo. The apps are multilingual, with Dutch and English today and more languages likely. You work with a small team in the Netherlands and use AI coding tools as a normal part of your workflow.

- Build features: take a feature from description to a finished screen that looks like it belongs in the app and feels native on iOS and Android
- Keep recording reliable: long audio recordings, background uploads, interruptions and OS watchdog kills are the hard part of this job
- Release to the stores: handle signing, TestFlight and internal testing tracks, review submissions, screenshots and release notes, for every branded app
- Fix what breaks: take a Sentry issue, reproduce it, fix it and ship it
- Modernize step by step: move the apps forward (for example from UIKit to SwiftUI) without a rewrite
- Localize: keep string tables in sync across platforms and make every screen work in every language

What we are looking for

Must-have:
- 5+ years of native mobile development in Swift and Kotlin, with at least one app you took from first commit to a live store listing and kept alive through updates
- Hands-on with App Store Connect and Google Play Console: certificates, provisioning, app signing, TestFlight, internal testing tracks and review submissions hold no surprises
- REST API integration end to end, including auth flows, token refresh, error handling and versioned contracts
- Audio capture or other long-running background work on at least one platform, and the drive to be equally strong on the other
- Local persistence, encryption and migrations, in whichever database you have used
- Comfortable in a reactive codebase (Rx-style or similar)
- Everyday Git: branches, rebases, pull requests and reviewing other people's work
- Excellent English communication, written and verbal (you do not need to speak Dutch)
- You read crash reports before feature requests

Also important:
- Design minded: you work from a brand guideline and the existing screens, have a good eye for spacing, type, color, dark mode and iPad layouts, and know the Apple and Material conventions well enough to choose between them on purpose. You are happy to show two quick variants and take feedback.
- Localization: you have shipped an app in more than one language, and know how to handle text that grows and format dates and numbers per locale.

Nice-to-have:
- SwiftUI, Combine, Jetpack Compose or Kotlin coroutines, so you can help us move the apps forward
- OAuth and Microsoft sign-in
- Your own iPhone, iPad, Android phone and Mac, so you can test on real devices from day one
- Experience using AI tools like Claude or Claude Code in your work

AI tools are welcome. We are an AI company. If you use Claude, Claude Code, ChatGPT, Copilot or similar tools to write code, migrate old code or track down crashes, tell us how, including where they don't help. We would rather hire someone who uses AI well than someone who avoids it.

What we offer

- Long-term partnership: we are investing in your future with us
- Real ownership: you own both native apps, from ticket to store release
- A clear growth path: a buddy, monthly check-ins and room to grow
- Continuous learning: work at an Anthropic partner, with Claude as part of your daily work
- Freedom to propose: if something should be done differently, we want to hear it
- Flexible remote work
- A team that moves fast and takes quality seriously

Our mobile stack

We care about depth on both platforms more than any specific library. If you know the modern equivalents (Combine, Compose, coroutines, Room, SQLDelight, SPM), you will pick these up quickly.

- iOS: Swift, UIKit with a SwiftUI migration under way, Rx-style reactive code, Realm, Moya, CocoaPods
- Android: Kotlin, Fragments and XML layouts, Rx-style reactive code, Realm, Retrofit, Gradle
- Shared: REST APIs with OAuth and Microsoft sign-in, Sentry, App Store Connect, Google Play Console, GitHub, Linear

How to apply

IMPORTANT: We assess candidates primarily through video responses. Please do not apply without submitting a video.

Step 1: Create a short video (3 to 7 minutes)

Record yourself answering these 5 questions:

1. Tell us about yourself: Briefly introduce yourself and how you got into mobile development.
2. An app you shipped: Walk us through an app you took from first commit to the stores. What was the hardest part of getting it released and keeping it running?
3. A hard crash you fixed: Tell us about the most complex crash or background issue you tracked down. Why was it hard to reproduce, and how did you fix it?
4. AI in your work: How do you use AI coding assistants in your mobile work today? Where do they help, and where do they not?
5. Your next role: What would you like to achieve in your next role? Where do you see yourself in 5 to 10 years?

Video guidelines:
- Length: 3 to 7 minutes in total
- Production: no need for professional quality, we want to see the real you
- Authenticity: it's fine to use AI to prepare, but talk to us in your own words. Please don't read from a script.
- Language: English (this assesses your communication skills)
- Format: any video format is fine (MP4, MOV, etc.)
- Hosting: upload to Google Drive, Dropbox, YouTube (unlisted) or similar

Step 2: Submit your application

Send the following to ----------

1. Your video (link or attachment)
2. Your CV / resume
3. Optional: App Store or Google Play links to apps you built, GitHub profile, LinkedIn profile


Email
subject: "Mobile Developer Application - [Your Name]"

What happens next

1. We review your video and CV within 2 to 3 days
2. If you are a strong match, we schedule an initial interview
3. Successful candidates move to a technical evaluation with our Head of Technology
4. Final candidates meet with our founder
5. We aim to complete the entire process in 1 to 2 weeks

Who should apply

Apply if you:
- Want a long-term career in a high-performance organization
- Like owning an app end to end, including the store releases
- Care about how a screen looks and feels, not just whether it works
- Are curious about AI and how it changes mobile development

Don't apply if you:
- Only want short-term gigs or are juggling multiple clients
- Aren't willing to create a video response
- Have only built apps with cross-platform frameworks, not native Swift or Kotlin

Ready to apply? Send your video and CV to ---------- are happy to answer any questions.

We look forward to learning more about you.

MSTR, ----------

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0010
Controller Execution Time ( Jobseekers / Job )  0.0268
Total Execution Time  0.0287
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,539,728 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Mobile-Developer-iOS-Android-Long-Term-Partnership-Opportunity-1359349
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0196 seconds)  (Hide)
0.0023   SELECT *
                                
FROM exrates
                                WHERE rate_name 
= 'USD-PHP' 
0.0006   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1359349
 LIMIT 1 
0.0004   SELECT *
FROM `employers`
WHERE `employer_id` = 759593
 LIMIT 1 
0.0027   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `misc` ON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1359349
AND `misc`.`id` IS NULL 
0.0006   SELECT e.business_name, e.logo, e.website, e.rebill_date, e.date_added member_date, hits, DATEDIFF('2026-10-04',ej.date_added) duration_days, DATEDIFF('2026-10-04',e.rebill_date) duration_rebill, ej.*, e.deactivate FROM employers e, employer_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-10-04',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != 1 AND ej.deleted = 0 AND job_id = '1359349' 
0.0013   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `sc` ON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1359349 
0.0007   UPDATE employer_jobs SET hit_counts = '***Apr-18-2025=92***Apr-19-2025=43***Apr-20-2025=11***Apr-21-2025=17***Apr-22-2025=13***Apr-23-2025=11***Apr-24-2025=17***Apr-25-2025=11***Apr-26-2025=3***Apr-27-2025=3***Apr-28-2025=3***Apr-30-2025=1***May-04-2025=5***May-05-2025=5***May-06-2025=1***May-07-2025=5***May-08-2025=1***May-09-2025=3***May-14-2025=1***May-21-2025=3***Jun-02-2025=1***Jul-01-2025=2***Jul-02-2025=2***Jul-04-2025=1***Aug-05-2025=2***Sep-01-2025=1***Sep-03-2025=1***Sep-10-2025=1***Oct-11-2025=2***Oct-18-2025=2***Oct-22-2025=1***Oct-25-2025=1***Oct-29-2025=1***Oct-30-2025=1***Nov-12-2025=1***Nov-15-2025=1***Dec-17-2025=1***Feb-01-2026=1***Feb-02-2026=2***Feb-18-2026=1***Mar-03-2026=1***Mar-25-2026=6***Mar-26-2026=1***Mar-27-2026=1***Apr-07-2026=3***Apr-09-2026=1***Apr-20-2026=1***Apr-26-2026=1***Jun-16-2026=1***Jun-17-2026=1***Sep-28-2026=10***Sep-29-2026=2***Oct-01-2026=4***Oct-02-2026=900***Oct-03-2026=84***Oct-04-2026=2' WHERE job_id= '1359349'  
0.0010   UPDATE employer_jobs SET monthly_hits = '***Apr-2025=225***May-2025=24***Jun-2025=1***Jul-2025=5***Aug-2025=2***Sep-2025=3***Oct-2025=8***Nov-2025=2***Dec-2025=1***Feb-2026=4***Mar-2026=9***Apr-2026=6***Jun-2026=2***Sep-2026=12***Oct-2026=988' WHERE job_id= '1359349'  
0.0016   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id = '' AND job_id = '1359349' AND status LIKE 'sent%' ORDER BY id DESC  
0.0004   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `sc` ON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1359349 
0.0072   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '759593'
AND `date_added` >= '2022-06-08' 
0.0005   select * from teasers 
0.0003   SELECT * FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)