Hiring and team setup

Hire a Flutter Developer for an Existing Team: Access, Code Review, and Who Owns the Release

Most articles about hiring Flutter developers are written for companies with no app yet. This one is for the other situation, where the product already exists, the repository already has history, and the question is how an outside developer gets inside it without slowing the people already there.

Thomas Siudut
Thomas SiudutCo-Founder and CEO, Apps Value
September 4, 20269 min read
  • Flutter
  • Team extension
  • Engineering management
  • Nearshore
Key takeaways for engineering leads
  • Access decides the start date, not the contract. Repository, CI, signing keys and store accounts are the usual reason a developer sits idle in week one.
  • Decide who reviews and merges before the first pull request. An external developer who cannot get code merged produces branches, not progress.
  • Two different requests hide behind the same search. One person inside your process is not the same as a small team owning a module, and they are priced and managed differently.
  • A live product changes the rules. With users already in the store, ramp happens through small releases, not through a refactor that lands in week three.

The question behind the search

When a company searches for a Flutter developer for an existing team, the product is usually already in the stores. There is a roadmap, a release rhythm, and one or two people who know why the code looks the way it does. The gap is capacity or a specific skill, not direction.

That changes what matters in the decision. Portfolio quality matters less than it does on a new build, because the design decisions are already made. What matters is how quickly someone can read an unfamiliar codebase, work inside your process, and hand work back in a form your reviewer accepts.

It also changes who carries the risk. On a new build, a supplier owns the outcome from the first line. On an existing product, your team still owns the release, and the outside developer has to fit that ownership rather than replace it. Everything below follows from that one fact.

Access is the real start date

The single most common reason an engagement starts slowly has nothing to do with the developer. It is that access arrives late. We see the same pattern on full builds: the delay that costs the most weeks is a client account that was not opened or configured in time, and the Apple developer account in particular is not a quick setup.

For a team extension the list is short and worth preparing before anyone signs anything.

  • Repository and branch permissions. Read access is not enough. Decide on day one whether the developer pushes branches to your repository or works from a fork, and who approves the merge.
  • Build pipeline. A local build that works only on your lead's machine is a week of lost time. Whatever the setup script leaves out, someone has to say out loud.
  • Signing and distribution. Certificates, provisioning profiles, keystore, and a seat on the store account with the right role. Distribution to testers is where this usually breaks first.
  • Third party services. Analytics, crash reporting, maps, payments, push. Sandbox credentials at minimum, because most of these cannot be reasoned about from the code alone.
  • A staging environment with realistic data. Not production data, and not an empty database either. Edge cases live in the middle.

None of this is technically hard. It is slow because it needs decisions from people who are not on the engineering team, which is why it should start before the first working day rather than on it.

A developer who cannot merge is a developer you are paying to wait.

Two shapes hide behind the same request

The phrase covers two arrangements that look similar on an invoice and behave nothing alike in practice. Naming which one you want before the first call saves a full round of misunderstanding.

One developer inside your process

The person joins your board, your standups and your review rules. Your lead sets priorities and approves the work. You gain hands without changing how the team runs.

What it needs from youReview capacity from a senior person, an onboarding day, and a backlog specific enough that tickets do not need three clarifying calls each.

A small team owning a module

Two or three people take a defined area, for example an offline layer, a payments flow or a second platform, and deliver it against agreed scope. Your team integrates and reviews at the boundary.

What it needs from youA clean interface between their area and yours, one person who can decide, and an acceptance step that says when the module is finished.

The first shape is usually billed by time, because the work is whatever your board says next week. The second can be scoped and quoted as fixed price app development, since the boundary is defined enough to price. If you are comparing those two commercial models, the trade offs are set out in our note on what it costs to hire a Flutter developer and on the pricing page.

Companies that need the second shape sometimes arrive asking for the first, because a single developer feels lower risk. It rarely is. One person attached to a module they do not own tends to inherit the parts of it that were never specified, and that is where estimates fall apart.

Code review is the whole engagement

On a new build the review question is a formality. On an existing product it is the engagement. Every line the external developer writes has to pass through someone who already knows the codebase, and that person's time is the constraint you are actually buying against.

Three decisions are worth making before the first pull request rather than after the first argument.

  • Who reviews, and what happens when they are away. If one lead is the only approver, holidays stop the external work completely. A named second reviewer removes that.
  • What counts as done. Tests, screenshots, a changelog entry, a demo on staging. Write the list down once, and the same conversation stops repeating every ticket.
  • How much rewriting is allowed. An outside developer will find things they would have done differently. Whether they may change them, and how far, is a policy decision, not a taste question.

The reasonable expectation for the first week is small and visible. Read the code, get a build running on a device, ship one contained change through your full pipeline. That last part matters more than the size of the change, because it proves the path from a branch to a release actually works end to end.

What the following weeks look like, up to the point where developers own whole areas of the app and you review demos instead of code, is laid out in the first 90 days with a dedicated Flutter team.

What slows the ramp, in order

Across engagements, the causes repeat, and almost none of them are about programming skill.

The usual four

Access, again. Half the ramp problems trace back to a credential that arrived on day nine. It is the cheapest thing on this list to fix and the most frequently skipped.

No one person who can decide. When a question about behaviour needs three people to agree, the answer arrives after the sprint it belonged to. One reachable decision maker is worth more than a detailed specification.

Undocumented build steps. The environment variable everyone on the team knows by heart is invisible to the person joining. A README written during onboarding pays for itself immediately.

Unclear ownership at the boundary. If two people can edit the same layer without a rule about who wins, you get merge conflicts and a quiet slowdown that never gets reported as a problem.

What we do on our side is keep the contact direct. You talk to the people writing the code rather than through an account layer, which is the only reliable way these four get caught in days instead of sprints.

When the app is already live

Adding people to a product with users in the store is a different exercise from adding them to a product still in build. The store review queue sits between finished work and released work, and payment or subscription changes attract particular attention from Apple, which checks whether transactions should be running through in app purchases.

Three habits keep that manageable. Release small and often, so an external contribution never sits unreleased for a month. Keep migrations and refactors behind flags, so a rollback is a switch rather than a hotfix. Agree that the first release containing outside code goes out with your lead present, not on their last day before holiday.

The same logic applies when the joining work is maintenance rather than features. If the actual need is that the existing app is fragile and shipping has stopped, more hands will not fix it. That situation is better handled as mobile app maintenance with an owner and a scope, and a codebase built in a low code tool has its own path, described in our guide to moving from FlutterFlow to Flutter.

The contract questions that actually matter

Technical fit is usually settled in one conversation. The commercial side is where engagements go wrong quietly, so it is worth being direct about the five points below.

  • Intellectual property. The code your money produced should be assigned to your company on payment, in writing, with no carve out for reusable components you were not told about.
  • Notice period. For an ongoing arrangement, symmetrical notice of two to four weeks is normal. Anything longer starts to feel like an employment contract without the protections.
  • Continuity. Ask what happens if the assigned developer is unavailable for two weeks, and get the answer before you need it.
  • Acceptance. For scoped work, delivery closes with a signed acceptance protocol so both sides agree the thing is finished. On larger contracts we back that with a one year warranty on the software.
  • Entity, law and currency. Who signs, under which law, and in which currency. With a European supplier this is usually simple, and we cover the detail in our guide to nearshore app development.

One more question is worth asking early, and it says more than any technical screen: does the supplier ask about your business and your users, or only about your stack? The projects we are asked to rescue tend to come from suppliers who did the second.

How we work with in house teams

Apps Value is a Flutter and React Native team in Kraków, one hour ahead of London and one behind Helsinki, so a working day overlaps almost completely with anywhere in Europe and covers the European morning for the US East Coast. That overlap is the reason this model works at all, because review is a conversation, not a ticket exchange.

In practice we join in one of the two shapes above. Where the work has a boundary, we prefer to scope it and quote it, because a fixed scope gives your team something to accept rather than a timesheet to check. Where the work is genuinely open ended, a developer inside your process is the honest answer, and we say so.

The public pages for each are hire Flutter developers and dedicated Flutter development team, with rates and setup for a team based in Poland on Flutter app developers in Poland. If your stack is React Native instead, the equivalent is hire React Native developers, and if the need is not Flutter specific at all, dedicated app developers covers it.

For field operations products the joining developer usually needs domain context more than framework depth, whether that is a service business running technicians or a manufacturer with equipment in the field. Our work there sits under field service app development and custom HVAC software development, and the offline behaviour that trips up most extensions is explained in offline first app development.

A worked example is TimeFix, where a requirement as small as a timer surviving a locked screen only appeared once technicians used the app on real jobs. That is the kind of detail a joining developer cannot read out of the repository, and the reason we ask about the operation before the stack.

FAQ

How long before an external Flutter developer is productive in our codebase?

With access ready on day one, expect a first merged change inside the first week and a normal ticket pace from week two or three. When access is not ready, add whatever the delay is directly to that timeline, because nothing else can start in parallel.

Should we hire one developer or a small team for an existing product?

One developer suits open ended capacity where your lead sets priorities every week. A small team suits a bounded area you can define and accept, such as an offline layer or a payments flow. The second is easier to price and easier to hold to a result.

Can a fixed price model work when we already have a codebase?

Yes, when the work has a boundary and someone can read the existing code before quoting. We usually run a short review of the repository first, or an app discovery workshop when the scope itself is still open, and quote after that rather than before.

Who owns the code written by an external developer?

Your company, assigned on payment and written into the contract. Ask specifically about third party and reusable components, and about the account under which builds are signed and released, since ownership of the store accounts should stay with you.

What does a scale up need that a smaller company does not?

Release discipline. With users in production, the constraint is not how fast code is written but how safely it ships, which means flags, small releases and a clear rule about who presses the button. Plan the review capacity for that before adding the third or fourth external pair of hands.

Does the time zone matter for a nearshore team extension?

More than for a full build. Team extension depends on same day review and quick answers, so a one hour offset is workable and a half day offset is not. Our setup for European clients is described on app development in Europe.

Thomas Siudut
Written by Thomas Siudut Co-Founder and CEO, Apps Value

Thomas sets the company's long term strategy and direction, identifies market opportunities, and owns business development and client acquisition. He builds strategic partnerships that last beyond a single project. He works with clients from the first strategy conversation, so their business goals, not just their feature list, drive every decision.

Thinking about adding Flutter capacity to your team?

Bring your repository, your release process and the part of the roadmap that is stuck. We will tell you whether this is a job for one developer inside your process or a scoped module, and what we would need from your side to start.

Book an intro call

30 minutes, no preparation needed.