AR & LiDAR Wound Assessment
- Sub-cm
- Distance measurement stability
- 3
- Wound metrics computed
Services · 04
Rescue, stabilize and speed up the app you already have, without a risky rewrite.
How this runs
Where we start
Most apps do not need a rewrite. They need someone to read the crash logs, measure what is slow, upgrade what is out of support and put tests around the parts that keep breaking. I have done this for apps with hundreds of thousands of users and for small teams who inherited a codebase nobody understood — always the same way: audit first, agree priorities, fix in small verified steps, and leave monitoring behind so the next regression is caught by a dashboard instead of a one-star review.
Your app keeps crashing
The reviews say it, the uninstall curve says it, and nobody on the team can say exactly why. You need the bleeding stopped before anything else.
Week one · Crash clusters triaged from Sentry or Crashlytics, the top crashers root-caused, and the first fixes shipped with tests pinning them down.
Your app got slow
Startup takes forever, screens stutter, the bundle has been growing for years. Users feel it before your dashboards do — if you have dashboards.
Week one · A measured baseline — startup, renders, bundle, API latency — and the quick wins (often config and caching) already in review.
You inherited a codebase
The original developers are gone, the dependencies are years old, and every change feels like defusing something. You need a map before you need fixes.
Week one · An architecture read-through and dependency audit, with the quick wins separated from the structural problems — in writing.
The build sheet
A written report on crashes, performance, dependencies, security and architecture, with a ranked fix list.
Root-cause analysis from Sentry or Crashlytics, fixed with tests so it stays fixed.
Startup time, render performance, bundle size, memory, API latency and caching.
React Native, Expo, Next.js, Node.js and library upgrades done in safe increments.
Vulnerable dependencies, auth gaps, data exposure and store policy requirements.
Crash-free rate, error rate, latency and vitals on one dashboard with sensible alerts.
Standards I don't negotiate
The first two rows are measured ranges from past rescues; the rest are the metrics I baseline in every audit and report on afterwards.
Crash rate
App performance
Production incidents
Cold start time
TODOBundle size
TODODependencies out of support
TODOAlways true, whatever the project
Incremental fixes inside your existing architecture, so the product keeps shipping.
Every fix starts with a baseline and ends with a number you can show your stakeholders.
Tests added around each change; upgrades done one version at a time.
Standards, review checklists and docs that reduced incidents by 50% on past teams.
Proof, from shipped work
A clinical imaging app with untyped global state, a statewide field app that had to get 30% faster on 2G, an enterprise app de-duplicated across 15+ modules — rescue work I can show you in full:
90%
Crash-rate reduction, up to
Measured on rescued apps
25-40%
Performance improvement
Clean architecture, caching, CI/CD
30%
Shorter feature delivery cycles
After de-duplicating 15+ modules
The do-nothing cost is real: Stripe's developer research found engineers lose roughly a third of their week to technical debt and bad code instead of new features.
The stack
Diagnose
Codebases I rescue
Quality
Ship
AI in the engagement
Legacy code is where AI tooling earns its keep: reading large unfamiliar codebases, drafting migrations and generating the tests that were never written.
Audit
Agents map modules, data flow and dead code, so the written audit covers more ground in the same week.
Stabilize
Characterization tests drafted by AI before any refactor, so 'it still works' is verified, not assumed.
Upgrade
Breaking-change diffs summarized and codemods drafted for framework upgrades, applied one version at a time.
Triage
Logs and crash groups distilled into root-cause hypotheses I verify on device before fixing.
45%
CI time cut by pipelines that follow the diff
Measured on a three-app monorepo
5
Agentic coding tools in daily use
Cursor, Claude Code, Codex, Windsurf, Antigravity
70-80%
Test coverage reached on past codebases
AI-drafted, human-kept
The guardrail · An agent can read ten thousand lines in a minute; deciding which hundred to change is still the job. Nothing lands on a legacy codebase without a test pinning the old behaviour first.
Process
Expand each step to see what happens and what you receive.
FAQ
Almost always maintenance. A rewrite is justified only when the platform itself is dead or the data model is wrong at the core. The audit answers this honestly in the first week, with evidence.
Send me the repo or the crash dashboard. I will tell you what I see and what I would fix first.