Track This Job
Add this job to your tracking list to:
- Monitor application status and updates
- Change status (Applied, Interview, Offer, etc.)
- Add personal notes and comments
- Set reminders for follow-ups
- Track your entire application journey
Save This Job
Add this job to your saved collection to:
- Access easily from your saved jobs dashboard
- Review job details later without searching again
- Compare with other saved opportunities
- Keep a collection of interesting positions
- Receive notifications about saved jobs before they expire
AI-Powered Job Summary
Get a concise overview of key job requirements, responsibilities, and qualifications in seconds.
Pro Tip: Use this feature to quickly decide if a job matches your skills before reading the full description.
Mid Mobile Engineer (Native iOS + KMM)
Tech Stack: Swift / UIKit / Storyboards (iOS); Kotlin Multiplatform Mobile / Kotlin Multiplatform (KMM / KMP); Ktor; SQLite-backed local persistence; Firebase / App Distribution / Crashlytics;
Imfuna is a PropTech SaaS platform that helps property professionals capture condition evidence on-site and generate compliant inspection and reporting workflows. Our mobile apps are used in the field, often in poor-connectivity environments. They are offline-first, data-heavy, and operationally important to customers. A single inspection can include large volumes of local data and media, so reliability, sync correctness, and clear recovery paths matter just as much as feature delivery.
We have a shared Kotlin Multiplatform core for business logic, networking, sync, and local data, with mostly native UI layers on iOS and Android. We also support multiple branded app variants from the same core codebase.
We’re hiring a Mid Mobile Engineer to help evolve this foundation safely: ship product improvements, strengthen the shared core, improve sync reliability, and reduce technical risk over time.
What you’ll do
- Build and ship product improvements on iOS and KMM module with a high bar for reliability, usability, and performance
- Develop and maintain shared KMM modules for domain logic, networking, local persistence, and sync
- Improve our offline-first architecture: capture locally, queue safely, upload in the background, retry appropriately, and recover cleanly from partial failure
- Work in the native iOS apps where platform-specific behaviour belongs, especially around UI, camera/media, background execution, file handling, permissions, and platform constraints
- Strengthen the mobile data layer: local storage, sync state, upload orchestration, error handling, and observability
- Help modernise the codebase through pragmatic refactoring rather than big-bang rewrites
- Improve engineering quality in the places that matter most: tests around critical logic, safer releases, better logging, better diagnosis, and fewer regressions
- Collaborate closely with Product, Backend, QA, and Support to solve real problems seen by field users
What we’re looking for (must-have)
- +4 years of production experience shipping iOS apps in Swift
- +2 years of production experience with Kotlin Multiplatform (KMM/KMP) especially shared business logic and data-layer code
- Experience with offline-capable apps or apps with meaningful local persistence and background sync
- Strong understanding of mobile data management, including caching, local databases, queue/state handling, and network-aware workflows
- Experience debugging and improving real production systems, not just building greenfield features
- Good judgement on what should live in shared code and what should remain native
- Comfortable working in an existing codebase with architectural debt, incremental refactoring, and platform-specific edge cases
- Able to reason about concurrency, retries, partial failure, recovery, and correctness in data-heavy workflows
- Clear communicator with an ownership mindset
Strongly preffered
- Experience with SQLite or similar local persistence layers
- Experience with Ktor, coroutines, and mobile networking patterns
- Experience with Firebase Crashlytics and practical mobile observability
- Experience with release discipline: staged rollout, crash monitoring, rollback judgement, internal distribution
- Experience working on multi-flavour / white-label / variant-based mobile products
Nice to have
- Production experience shipping Android apps in Kotlin
- Experience with backend-driven / dynamic UI patterns
- Experience with camera, photo, audio, or file-heavy workflows
- Experience improving CI/CD and internal release automation
- Experience introducing testability into legacy codebases
- Experience with Bluetooth / Wi-Fi / external device integrations in mobile apps
- Comfortable using AI-assisted development tools (e.g., Cursor, Claude, Codex/GitHub Copilot) to speed up delivery, including generating scaffolding, refactors, tests, and docs, while keeping code quality, security, and correctness high (reviews, testing, and verification habits).
What success looks like (first 30-60 days)
- You’ve shipped meaningful improvements on iOS and KMM
- You’ve improved field throughput and completion rates (more inspections finished per day, fewer abandoned uploads, and faster review-to-PDF cycles), not just stability metrics.
- Strengthened a clean, testable shared KMM core
- Improved app stability so unexpected issues surface as controlled in-app errors rather than crashes
- Improved sync reliability with the server (more resilient uploads, fewer failed/partial syncs)
- Crash-free users/session target (aiming at 99.8%+ crash-free sessions)
- Upload failure rate reduction goal
- Time-to-diagnose target (better logs + breadcrumbs)
- Made releases feel safer: fewer regressions, better monitoring/visibility, and faster iteration
Location
Remote - High coverage of UK working hours required
Employment type: Permanent
Key Skills
Ranked by relevanceReady to apply?
Join Imfuna and take your career to the next level!
Application takes less than 5 minutes

