You'll join our Flutter team as the Lisbon engineering bandwidth that unblocks our 2026 mobile product roadmap. You'll own end-to-end feature delivery, from first line of code to App Store and Play Store release, with full test coverage and a crash-free rate above 99.5%.
You'll work daily with a Germany-based core team in the same time zone, leaving async-quality PRs and design notes that don't need sync follow-up. The Germany team is at capacity. You change that.
You'll onboard into the codebase, toolchain (Jira, Confluence, Git), and daily team rituals within 3 months, delivering reviewed PRs independently
You'll ship your first self-owned feature to production within 3 months, with full test coverage and zero critical post-release bugs
You'll participate in architecture decisions and articulate state management choices (BLoC, Riverpod) in team reviews
You'll lead end-to-end delivery of at least one major feature within 9 months (design, QA, App Store and Play Store release)
You'll maintain a crash-free rate of 99.5% across all features you own, responding to production incidents within SLA
You'll handle backend touchpoints independently (Node.js and REST) so you don't bottleneck on the Germany team for API integration
You'll contribute to CI/CD improvements (build time, test reliability, deployment automation)
Must-haves
3+ years professional Flutter and Dart experience with at least one production app personally shipped to both App Store and Play Store
Hands-on production experience with BLoC or Riverpod state management at scale, with the ability to explain trade-offs
Direct experience debugging non-trivial production crashes using Flutter DevTools, resolved without senior support
Familiarity with REST API design and Node.js or comparable backend touchpoints, plus Firebase (Firestore, Auth, FCM)
Demonstrated quality ownership: unit and widget tests written by default, post-release stability accountability
Strong async remote collaboration habits, ideally with at least one prior role working daily across timezones
Native Portuguese plus business-fluent English
Nice-to-haves
Experience improving CI/CD pipelines for mobile (Fastlane, GitHub Actions for mobile, Codemagic, or similar)
Direct exposure to native Android (Kotlin) or iOS (Swift) for platform-specific bridging
Experience contributing to or maintaining shared mobile component libraries
You'll join the Development Team within our Development & Technology Practice. You'll report to the Director Development & Technology, working daily with the Germany-based Flutter engineers. The time-zone overlap is full (CET vs WET = 1 hour), so async is the default with focused sync moments for architecture and reviews.
Mobile: Flutter, Dart, BLoC or Riverpod state management, Flutter DevTools
Backend Touchpoints: Node.js, REST APIs, Firebase (Firestore, Auth, FCM)
CI/CD: GitHub Actions or GitLab CI for mobile, Fastlane or Codemagic, App Store and Play Store release workflows
Internal Tooling: Jira, Confluence, Forecast, Claude AI, Claude Code, Cursor
Statutory: Standard Portuguese employment benefits via local entity or EOR (paid time off, public holidays, parental leave, statutory health coverage)
Health: Private health insurance top-up
Learning: Full Blinkist Business library (4,500+ books), 3 months of Babbel, HubSpot certifications fully funded if relevant to your work
Flexibility: Up to 4 weeks per year working from anywhere in the EU with a €500 allowance, hybrid setup with Lisbon hub access (2 days per week)
Culture & Tools: Flat hierarchies with direct access to CEO and Leadership, modern stack (HubSpot, Jira, Confluence, Claude AI)
Thorit is one of Europe's leading HubSpot partners and a top business and technology consultancy. We combine strategic advisory with hands-on IT implementation, from CRM architecture to fully automated go-to-market infrastructure powered by AI and agentic systems.
Send your application via Ashby. A cover letter is optional, but a concrete example of a Flutter feature you personally owned end-to-end (first line of code to App Store and Play Store release, including what broke and how you handled it) is required.