Senior Flutter Developer
Sociera · United Kingdom
Apply & track with Apply EdgeSenior Flutter Developer — SocieraSociera is a social platform built around location, discovery, and real-world connections. Our mobile app brings together interactive maps, people and places, social feeds, short-form video, and real-time messaging.We’re looking for a Senior Flutter Developer to help develop and evolve our iOS and Android application. This is a hands-on role with meaningful responsibility for architecture, performance, reliability, testing, and the quality of the mobile experience.We’re a small core team at an early stage. You’ll work directly with the founders, design, and the backend team, and own features end-to-end.You’ll tackle challenges such as keeping a rich map responsive as its data changes, making video feeds feel smooth, ensuring messaging and location features behave reliably across network conditions and app lifecycle changes, and bringing a large, fast-moving codebase under meaningful automated test coverage.Our Stack and ArchitectureOur app primarily uses MVVM with Provider/ChangeNotifier, supported by shared services and reusable ViewModel behavior. We use Dio/Retrofit for APIs, AutoRoute for navigation, Hive for local storage, and build_runner for code generation.Maps use Mapbox with custom GeoJSON layers and clustering. Media features combine camera capture, IMG.LY editing, and video playback with caching. Firebase Crashlytics and Performance support production diagnostics.What You’ll DoBuild and maintain Flutter features across maps, discovery, profiles, social content, media creation, and messaging.Develop Mapbox experiences involving custom layers, markers, clusters, place discovery, and route visualization, keeping the map responsive as its data changes.Evolve our MVVM architecture and Provider-based state management: narrow rebuild scope on demanding screens, split oversized ViewModels, introduce clear service and repository boundaries where needed, and improve testability.Integrate REST APIs and real-time services such as SignalR, handling authentication, pagination, reconnection, errors, and asynchronous updates.Improve camera, image, and video workflows, including editing, uploads, processing states, caching, and playback.Diagnose rendering delays, excessive rebuilds, memory issues, crashes, and platform-specific behavior using profiling and production diagnostics.Expand unit, widget, integration, and device-level tests around critical user journeys—including sign-up, maps, messaging, and feeds—and make testing part of the definition of done and CI.Set up and maintain reliable build, test, and release pipelines in Azure DevOps, including signing and distribution.Contribute to code reviews, technical decisions, dependency upgrades, and Flutter upgrades.Collaborate with product, design, and backend engineers to turn complex requirements into clear, maintainable mobile experiences.Must-Have SkillsStrong professional Flutter and Dart experience, with a track record of shipping and maintaining production applications for iOS and Android.Solid understanding of Flutter rendering, widget lifecycle, asynchronous programming, streams, resource cleanup, and performance profiling.Production experience with MVVM or comparable architecture, plus strong practical understanding of Provider/ChangeNotifier: scoping rebuilds, managing ViewModel lifecycle and disposal during asynchronous work, maintaining consistent shared state, and designing testable ViewModels.Experience building interactive map or location-based features involving GeoJSON sources, style layers, clustering, and camera control, including permissions, location updates, and platform differences.Strong API integration skills, including authentication, error handling, pagination, and keeping UI state consistent during asynchronous operations.Ability to investigate and resolve performance and reliability issues in complex mobile interfaces.Practical experience improving automated coverage in an existing codebase, including ViewModel tests with mocked services, widget tests, and device-level flows, without requiring a rewrite.Working knowledge of Android and iOS build tooling, native plugin integration, and mobile release workflows.Experience building or maintaining mobile CI/CD pipelines, including automated testing, signing, and distribution.Excellent written and spoken English, with the ability to discuss technical decisions clearly, write effective documentation, and collaborate confidently with founders, designers, and engineers in English.Thoughtful code review and ownership of features from implementation through release and follow-up.Preferred / Nice-to-Have ExperienceMapbox specifically: custom markers, clustering, camera interactions, route rendering, and map performance.Real-time messaging with SignalR, WebSockets, or similar technologies, including reconnection and state recovery.Media-heavy applications involving camera capture, image/video editing with IMG.LY or similar tools, upload processing, caching, and feed playback.Dio/Retrofit, AutoRoute, Hive, GetIt/Injectable, and Dart code generation.Patrol, bdd_widget_test, Mockito/Mocktail, and tests that interact with native permission dialogs and device features.Firebase Crashlytics, Performance, and Remote Config, or comparable production diagnostics tools.Push notifications, deep links, attribution, and analytics integrations such as OneSignal, AppsFlyer, and Amplitude.Kotlin or Swift experience for diagnosing native integration issues and maintaining Flutter plugin forks.Azure DevOps pipelines and collaboration with .NET/Azure backend teams.Experience improving an established codebase through incremental refactoring and targeted test coverage.You do not need experience with every library in our stack. We value strong Flutter fundamentals, sound engineering judgment, and the ability to take ownership of a complex mobile product.Share examples of applications you’ve worked on, your contribution, and a technical challenge you helped solve—particularly in maps, media, performance, reliability, or testing.If you’ve made an existing app measurably more testable, tell us how.