Software Engineer, Mobile (Flutter) @Plane Software, Inc.
Software Development
Salary unspecified
Remote Location
πŸ‡ΊπŸ‡Έ USA Only
Employment Type full-time
Posted 1mth ago

[Hiring] Software Engineer, Mobile (Flutter) @Plane Software, Inc.

1mth ago - Plane Software, Inc. is hiring a remote Software Engineer, Mobile (Flutter). πŸ’Έ Salary: unspecified πŸ“Location: USA

Role Description

Plane's mobile app runs against whichever server the person holding the phone chose, which might be Plane Cloud or a self-hosted instance several releases behind, on a device their IT department has locked down. It carries most of the web product, and it is where the work reaches people: whatever happens to a work item or a page, whether a colleague or an agent did it, shows up in the app and in notifications the moment it happens. You will own feature areas end to end, from the interface down to the native code underneath, and you will hold the architecture that keeps an app this size consistent. You will work with backend, design, product and QA engineers in San Francisco and Hyderabad, alongside the mobile developers who built what you are extending.

What you'll do

  • Own feature areas end to end, from the interface through the data layer into the native code underneath, starting with scoped ones and taking on larger ones as you learn the app.
  • Build every feature to the same architecture. It is written down and it is not optional, which is what lets anyone on the team open any part of the app and know where the state, the data and the interface live.
  • Own the native surface on both platforms: home screen widgets in WidgetKit and Jetpack Glance, quick actions, method channels, and the background work that keeps a widget and the app in agreement without costing the person their session.
  • Own how the editor feels on a phone. Plane's editor is built by our editor team and renders inside a fork of InAppWebView, so making it behave like part of the app rather than a page inside one is yours, in their codebase as much as ours.
  • Own how work reaches a phone: push notifications, notifications inside the app, the inbox, catch up, and the activity that people and agents generate on items and pages.
  • Work daily with backend, design, product and QA across San Francisco and Hyderabad, writing the test scenarios for each platform that QA gates the release on and raising coverage in the code you touch.
  • Ship against several server versions at once. Working out what a feature does on a self-hosted instance three releases behind is tedious, and it will make you good at designing for software that upgrades on someone else's schedule.

Qualifications

  • You have shipped and maintained Flutter apps in production.
  • Not only to launch, but through the releases and regressions that came after.
  • You architect for whoever arrives after you.
  • Clean architecture and SOLID are already how you work, and you can walk us through a codebase you structured and what you would change now.
  • You understand state management as a pattern, not a library.
  • Unidirectional flow, how events become state, and where side effects belong. We use Bloc.
  • Dependency injection is a habit, not a package choice.
  • You can describe your composition root and how you swap implementations in tests.
  • You write unit and widget tests while you build.
  • Point us at one that caught something real before a user did.
  • You match the codebase you are in.
  • Our patterns are written down, and we would rather a feature look like the rest of the app than like your preference.

Nice to haves

  • You have written native code on Android and iOS to make a Flutter feature possible.
  • You have worked on apps built around webviews and have opinions about bridging JavaScript and Dart.
  • You have shipped with Bloc, or maintained a Flutter package or fork that other people depend on.
  • You have built local caching and persistence layers, and arrived at your opinions about invalidation the hard way.
  • You have shipped into self-hosted, regulated or otherwise locked down environments where you control neither the server nor the device.

Tech

  • Mobile: Flutter, Dart, Bloc, GoRouter
  • Editor: our own editor, rendered in a fork of InAppWebView
  • Data and cache: GraphQL, REST over Dio, Isar, ObjectBox
  • Native: Swift, Kotlin, WidgetKit and SwiftUI, Jetpack Glance, WorkManager, Firebase Cloud Messaging
  • Secure storage: iOS Keychain, Android Keystore
  • Build and design system: GitHub Actions, Fastlane, internal Flutter component library
  • Services you will call: public REST and GraphQL APIs
  • Observability: Sentry, PostHog
  • Everyday tools: GitHub, Plane (yes, we run on it), Figma, Slack

Why Plane?

  • The scope is real. We are a passion team serving companies of every size, including some of the largest in the world.
  • The constraints make you better. Building software that survives all of that is harder than building an ordinary SaaS product.
  • The people-and-agents future is being built here, in production.
  • Your name is on the work. The teams are deeply connected enough that credit and responsibility both find you fast.

Plane is an equal opportunity employer. We do not discriminate based on race, color, religion, gender identity or expression, sexual orientation, national origin, age, disability, veteran status, or any other protected characteristic under applicable law.

Before You Apply
️
πŸ‡ΊπŸ‡Έ Be aware of the location restriction for this remote position: USA Only
β€Ό Beware of scams! When applying for jobs, you should NEVER have to pay anything. Learn more.
Software Engineer, Mobile (Flutter) @Plane Software, Inc.
Software Development
Salary unspecified
Remote Location
πŸ‡ΊπŸ‡Έ USA Only
Employment Type full-time
Posted 1mth ago
Apply for this position
Did not apply βœ“
Applied βœ“
Sent Follow-Up βœ“
Interview Scheduled βœ“
Interview Completed βœ“
Offer Accepted βœ“
Offer Declined βœ“
Application Denied βœ“
Unlock 125,000+ Remote Jobs
️
πŸ‡ΊπŸ‡Έ Be aware of the location restriction for this remote position: USA Only
β€Ό Beware of scams! When applying for jobs, you should NEVER have to pay anything. Learn more.
Apply for this position
Did not apply βœ“
Applied βœ“
Sent Follow-Up βœ“
Interview Scheduled βœ“
Interview Completed βœ“
Offer Accepted βœ“
Offer Declined βœ“
Application Denied βœ“
Unlock 125,000+ Remote Jobs
Γ—
Apply to the best remote jobs
before everyone else

Access 125,000+ vetted remote jobs and get daily alerts.

4.9 β˜…β˜…β˜…β˜…β˜… from 500+ reviews

⚑ 126,955+ remote jobs, refreshed hourly

πŸ”” Real-time alerts: Apply first, direct to employer

πŸ›‘οΈ Vetted companies, no scams, true remote only

Unlock All Jobs Now

Maybe later