All rolesSenior Flutter Developer
Full remote · Full-time · Independent contractor
We are looking for a senior mobile engineer to build and maintain production applications for iOS and Android. You will own features from product refinement and API contract through implementation, store release, and post-release monitoring. Working in a small cross-functional delivery team, you will collaborate directly with backend engineers and clients and make practical decisions about architecture, state management, failure handling, performance, and release quality. The role includes maintaining applications after launch, not only implementing screens from designs.
What you will do
- Build and maintain Flutter applications for iOS and Android.
- Own features from product refinement and API contract through implementation, store release, and monitoring.
- Model loading, empty, partial, offline, timeout, authorisation, and recoverable error states.
- Collaborate with backend engineers on schemas, pagination, versioning, idempotency, and error contracts.
- Select maintainable architecture and state boundaries appropriate to each product.
- Write focused unit, widget, and integration tests around important behaviour.
- Profile startup, rendering, memory, networking, and mid-range-device performance.
- Maintain signing, CI/CD, TestFlight, Play tracks, phased rollout, and store submissions.
- Use crash reporting and analytics to investigate regressions after release.
- Review human- and AI-generated code and communicate directly with clients.
Required experience
- 5+ years of professional mobile or software development, including 3+ years of production Flutter and Dart.
- At least one Flutter application shipped and maintained on both the App Store and Google Play.
- Strong asynchronous programming and deep experience with at least one production state-management approach.
- Experience integrating REST or GraphQL APIs with explicit failure handling and local persistence or caching.
- Practical automated-testing experience across unit, widget, or integration levels.
- Store signing, release, and post-release monitoring experience.
- Ability to profile and diagnose performance problems and crashes.
- Strong written and spoken English for client calls, reviews, and specifications.
Useful, not required
- Swift or Kotlin and platform channels or plugins.
- Offline-first synchronisation or conflict resolution.
- Fastlane, GitHub Actions, Firebase, Sentry, or equivalent tooling.
- Payments, fintech, healthcare, IoT, or other regulated products.
- Accessibility, localisation, deep links, notifications, or secure storage.
- Previous consultancy, outsourcing, or direct client-facing delivery.
What we offer
- Full-remote work with a flexible schedule outside agreed client and team overlap.
- Full-time independent-contractor engagement.
- 14 paid vacation days and 7 paid sick days per year.
- Official public holidays in your country of residence in addition to the paid days above.
- Work from your own laptop; EthBerry provides the project accounts and paid software licences required for the engagement.
- Compensation agreed individually based on relevant experience.
- Ownership of mobile engineering decisions from API contract through store release.
- The contract does not include health insurance, company hardware, or office-based benefits.
Hiring process
- Application review.
- HR screening — 30 minutes.
- Technical interview — 75 minutes. We discuss a production application, architecture, API failures, offline behaviour, tests, release incidents, and performance diagnosis.
- Unpaid take-home assignment — strictly capped at 4–6 hours. Build a small paginated list and detail flow using a supplied mock API, with loading, empty, malformed-response, timeout, retry, session-expiry, caching or explicit offline behaviour, and focused tests.
- Assignment review — 60 minutes. You explain decisions and respond to one changed API or product requirement.
- Final cultural-fit interview — 30 minutes.
AI coding tools are allowed. Their use must be disclosed briefly, and you must be able to explain and defend every submitted decision. The assignment is not used in production.
Apply