Inês Moura Senior Flutter Developer
Porto, Portugal • flutterdev@gmail.com • +351 912 555 014
Profile Summary
- Senior Flutter Developer with 8 years of experience shipping Flutter apps for iOS and Android from one Dart codebase in connected cars, e-commerce, and retail, with a focus on offline-first features, native SDK bridges, and smooth rendering on mid-range phones.
- Daily stack across languages (Dart 3, Kotlin, Swift), state and routing (Riverpod, Bloc, go_router), networking and storage (Dio, Drift), testing (flutter_test, Patrol), and release and monitoring (Codemagic, Firebase Crashlytics), built on years of native Android work and a habit of reading Xcode build logs.
- Strongest in feature-first app architecture, type-safe platform channels, offline command queues, and frame-time profiling, relying on golden tests on shared widgets and staged store rollouts to deliver releases that feel native on both platforms and rarely need a hotfix.
- Partners every day with product designers, backend engineers, QA, and the native iOS and Android teams as part of a cross-functional feature team inside a large mobile org, taking features from Figma handoff and API contract to the store release.
- Senior engineer who pushes for widget test coverage and accessible UI in every pull request review, hosts the Porto Flutter chapter, and keeps the shared widget catalog other squads copy from.
Technical Skills
- Languages:
- Dart 3, Kotlin, Swift, C++, SQL
- Flutter SDK & Tooling:
- Flutter, Material 3, Cupertino, Impeller, Flutter DevTools, Melos
- State & Navigation:
- Riverpod, Bloc, go_router, get_it, freezed
- Data & Networking:
- Dio, REST, GraphQL, Drift, Isar, Firebase
- Native Interop:
- Platform channels, Pigeon, Dart FFI, Xcode, Android Studio, Gradle
- Testing:
- flutter_test, mocktail, golden tests, Patrol, Firebase Test Lab
- CI/CD & Monitoring:
- Codemagic, Fastlane, GitHub Actions, Firebase Crashlytics, Sentry, Shorebird
Education
Work Experience
- Rebuilt the vehicle status and climate control screens of the My BMW app as composed Flutter widgets with Material 3 theming, adaptive layouts for phones and tablets and semantics labels on every control, cutting accessibility audit findings from 37 to 4.
- Moved 9 feature modules off setState and global singletons to Riverpod notifiers with sealed Dart 3 state classes and typed go_router routes, cutting state-related bug tickets by 58% over the next 2 releases.
- Built an offline queue for remote lock, unlock and climate commands on Drift tables and a Dio client with token refresh and retry rules, so requests sent from underground car parks go through once the phone reconnects, cutting failed commands from 6.1% to 1.3%.
- Replaced hand-written MethodChannel code with 5 type-safe bridges generated by Pigeon to the native digital key and Bluetooth SDKs in Swift and Kotlin, cutting crashes inside channel calls by 83%.
- Profiled the charging station map and list in Flutter DevTools, moved JSON parsing into isolates and narrowed rebuilds with const widgets and selectors, cutting janky frames on mid-range Android phones from 9.4% to 1.1%.
- Set up widget and golden tests in flutter_test with mocktail, plus Patrol flows on Firebase Test Lab devices, gating every pull request and raising coverage on the charging feature from 38% to 81%.
- Rebuilt the team’s release pipeline on Codemagic with Fastlane, 3 build flavors and automated code signing, moving App Store and Play Store releases from once a month to every 2 weeks with staged rollouts.
- Set up symbolicated Dart and native stack traces in Firebase Crashlytics, a crash-free alert for each release and Remote Config switches to turn off a broken flow, raising crash-free users from 99.1% to 99.8%.
- Built product search, wishlist and checkout features in Kotlin for a European fashion retailer's shopping app, used by 1.8M shoppers a month.
- Built the client’s first Flutter module, a store locator added to the native app with add-to-app, and the pilot went well enough that the team moved 12 more screens to Flutter.
- Cut checkout crashes by 64% by fixing lifecycle and threading bugs found in Firebase Crashlytics, and onboarded 4 new developers to the codebase.