All work

Research assistant

From 67.1 MB to 11.5 MB. From 164 tests to 465. Built around a live app’s real constraints.

Research assistant mobile app showing conversations, sources, and discovery
67.1 → 11.5 MBShipped bundle

82.9% reduction, calculated from the documented before/after sizes. This is not an install-footprint measurement.

164 → 465Automated tests

The documented test suite grew by 301 tests.

34Required regressions

Regression requirements supported by CI coverage floors.

12Hardening phases

Security, privacy, and reliability remediation.

The challenge.

A live consumer health app needed continued releases while its security, privacy, and reliability foundations were improved.

My scope was the mobile client and its integration with a research assistant whose answers link back to source identifiers.

The boundaries.

  • Support an app already live on App Store and Google Play with active paid acquisition.
  • Remove session replay from health screens and prevent personal information in logs.
  • Address a runtime ReDoS vulnerability reachable from model output.
  • Keep regression requirements and coverage floors enforced in CI.

How it fits
together.

The React Native client integrates the assistant’s planning, retrieval, and source-linked responses into a mobile experience. A 12-phase remediation programme addressed privacy, runtime safety, bundle weight, and regression coverage, with EAS builds and OTA release engineering.

Shipped bundle size
11.5 MB

82.9% smaller than the inherited bundle.

The decisions
behind the details.

01

Privacy at the client boundary

Health screens should not be captured by third-party session replay, and sensitive content must stay out of logs.

Tradeoff
Less visual analytics; observability must use limited, appropriate metadata.
02

Reduce the shipped bundle

The inherited 67.1 MB bundle created a concrete performance and distribution cost to address.

Tradeoff
Asset and dependency changes require careful production regression checks.
03

Make quality cumulative

Per-directory coverage floors, 34 required regressions, and a non-decreasing coverage ratchet keep fixes from silently disappearing.

Tradeoff
Changes must satisfy additional automated gates before release.

Mobile development workspace

Next case study