Decides cross-platform or native honestly
React Native and Flutter are right for most applications and wrong for some. The answer depends on what the app does, not on what is fashionable.
An engineer who ships to a store, not just to a simulator. Which means release builds, signing, review rejections, permission prompts, and the fact that a bad version stays on some devices for months.
Web software can be wrong for twenty minutes. A mobile release can be wrong for a fortnight, because you cannot take a bad version back off somebody’s phone.
React Native and Flutter are right for most applications and wrong for some. The answer depends on what the app does, not on what is fashionable.
Every prompt is a place users say no. Where it is asked, and what the app does when refused, is a product decision that engineers usually make by accident.
Signing, provisioning, staged rollout, and a plan for the users who never update. The last one is the part that surprises people.
Not just the simulator and not just the newest phone. The bug that matters is on a four-year-old Android with 8% battery.
The single number that tells you whether the last release was a good idea, checked daily for the week after every one.
Nobody on the bench knows all of this. We shortlist against what your problem actually needs, and tell you where the gaps are.
No algorithm puzzles. Every exercise below is a task this role does in a normal week, and we watch the method more than the answer.
Not write an app. Ship one, with signing, to a device we hold. It is remarkable how many strong coders have never done this without help.
Given a simple list that syncs, make it behave correctly when the network drops mid-write and comes back. The conflict handling tells us almost everything.
We describe a real store rejection and ask what they would change. We want to hear diagnosis, not a guess at what the reviewer wanted.
Ten percent of users are three versions behind. What does your API do about it. A good answer exists and most candidates have not thought about it.
You interview every candidate we put forward, so these are yours to use. They separate somebody who has run this in production from somebody who interviews well.
Talks about versioned endpoints, tolerant parsing, and a forced-update path kept for genuine emergencies rather than convenience.
Assumes everybody updates. They do not, and the ones who do not are disproportionately the ones who will complain publicly.
Asks what the app does before answering. Animation-heavy, camera-heavy or background processing pushes native; forms, lists and content do not.
Has one answer for every project. Usually the framework they know, which is a reasonable personal preference and a bad architectural argument.
Names a number, usually above 99.5%, and describes watching it during a staged rollout so a bad build stops at 5% of users.
Does not measure it. Which means the first signal of a bad release is a one-star review.
Has an opinion: after the user has seen why it would help, never on first launch, with a soft prompt first so a no is not permanent.
On launch, because that is the default. It is also how apps end up with a permanently unreachable half of their users.
Usually not. A cross-platform build with one engineer covers most business applications, and native specialists get pulled in for the specific screens that need them. We will say honestly when your app is one of the ones that needs two.
You do, always. The developer accounts, the signing certificates and the listings are yours, set up in your name. An agency that holds your store account holds your product.
Usually a day or two on both stores now, but it is not a promise anyone can make, and a rejection resets the clock. Release plans that depend on approval landing on a specific day are plans that break.
Thirty minutes, and a shortlist within a day. If a mobile app developer is the wrong hire for what you described, you will hear that instead.
Either one reaches Umer directly. No forms sitting in a queue.