Maintenance & rescue

App maintenance services for apps that already shipped and need a steady hand.

Not every engagement starts with a blank repository. A large share of my work is taking over an app someone else built — fixing crashes, catching up on OS updates, getting a stalled release unstuck, or just keeping a live app healthy month over month. If your app already exists and needs attention, this is the more relevant page.

Currently booking new projects · replies within 1 business day

01Taking over an existing codebase

Picking up someone else's app starts the same way every time: a real read of the codebase before promising a timeline, not a guess based on a quick look. I check what state the architecture is actually in, what technical debt is load-bearing versus cosmetic, whether the release pipeline is trustworthy, and what the crash and store-review history looks like. Only after that does a maintenance plan or fix estimate mean anything.

This is deliberately not a rewrite-first approach. Most apps that need a rescue do not need to be rebuilt from zero — they need the actual problems fixed: the crash that keeps recurring, the release that keeps failing review, the feature that was half-built and abandoned. Rewrites are sometimes the right call, but only after the diagnosis says so, not as a default.

02Crash fixes and stability work

Crash and ANR reports get triaged by actual user impact, not by whatever is easiest to fix first. That means reading crash-reporting data properly, reproducing the failure reliably, and fixing the root cause rather than patching the symptom — a distinction that matters when the same crash keeps resurfacing release after release under a different stack trace.

03Keeping up with OS updates and store compliance

Android and iOS both ship yearly OS updates that can quietly break an app that was fine last year — new permission models, deprecated APIs, changed background-execution rules, updated Play Store and App Store policy requirements. Apps that go unmaintained for even a year or two tend to accumulate a backlog of these changes that becomes its own project. Staying current, or catching up on what was missed, is core maintenance work here.

  • Target SDK / OS version updates ahead of store deadlines, not scrambled at the last minute.
  • Dependency and library updates, including security-relevant ones.
  • Store policy compliance review — the kind of change that gets an app suspended if ignored.
  • Analytics and crash reporting kept working as SDKs deprecate and platforms change.

04Ongoing maintenance retainers

For apps that are stable but need a developer on call, a retainer covers a set amount of time each month for bug fixes, small features, dependency updates, and store-release management — without re-negotiating a new contract every time something comes up. It is the same "maintain" phase every build here ends in, just as a standing engagement instead of a one-time fix.

05What this looks like in practice

One of the testimonials below — "Crash fixes, launched app" — is exactly this kind of engagement: an app that needed stabilizing and a release that needed to actually go out. That is the pattern maintenance work here follows: diagnose honestly, fix what is actually broken, and get the app back to a state where it can keep shipping on its own.

Selected work

Products designed, built, and shipped to real users.

A few apps taken from first idea to store release, relevant to this kind of engagement.

Client feedback

What clients say after shipping.

Verified 5-star reviews from Upwork clients — backed by a Top Rated Plus badge and a 100% job-success record.

Andrii is not only a wonderful person to work with but also an exceptionally skilled programmer. He approaches his work with great efficiency and delivers excellent results.
Crash fixes, launched app · Upwork · ★5.0
Andrii is straightforward to work with; he has shown professionalism from day one and was easily able to understand the tasks before him.
Senior Android dev, ongoing projects · Upwork · ★5.0

Process

A direct path from first scope to production maintenance.

The workflow stays boring on purpose: define the target, make the technical decisions early, ship in visible increments, and keep the release path clean.

  1. 01

    Scope

    Turn a rough idea into a costed plan — features, milestones, and a realistic timeline.

  2. 02

    Architect

    Design a structure that stays maintainable as the product and the team grow.

  3. 03

    Build

    Ship production code — native Android, Kotlin Multiplatform, and Compose Multiplatform.

  4. 04

    Ship

    Release to the App Store and Google Play with analytics and crash reporting in place.

  5. 05

    Maintain

    Stay on after launch for fixes, OS updates, and the next round of features.

FAQ

The practical questions for this kind of work.

I don't know what's wrong with my app, just that it's broken. Can you still help?
Yes — that is the normal starting point. The first step is a codebase and crash-report review to find out what is actually happening, before any fix estimate is given.
Do you rewrite the whole app, or fix what exists?
Fixing what exists, by default. A rewrite is only recommended when the diagnosis genuinely calls for it — most apps that seem broken have specific, fixable problems rather than an unsalvageable foundation.
Can you take over an app built by a team or agency I no longer work with?
Yes, this is common. I do not need the original developers involved to get started — I need access to the codebase, store accounts, and whatever crash or analytics data exists, and I'll take it from there.
Do you offer an ongoing maintenance retainer, or only one-off fixes?
Both. Some engagements are a single fix or a store-compliance update; others are a standing monthly retainer for an app that needs continuous attention. I will recommend which fits after seeing the scope.
What platforms do you handle for maintenance work?
Android (Kotlin, Jetpack Compose or legacy Views), iOS, Kotlin Multiplatform, Compose Multiplatform desktop apps, and the backend services behind them — Ktor, Supabase, Firebase, and similar.

Related services

Next step

Send the short version of what you need to ship.

Include where the product is now, what needs to be true in the next release, and which platforms matter. I will respond with the most useful next move.

Currently booking new projects · replies within 1 business day